一、选择题(26分)
1.  正确的C语言标识符是 (A )。
A._buy_2        B.2_buy        C.?_buy        D.buy?
2.  以下选项中, 合法转义字符的选项是(A )。
    A.’\\’      B.’\018’      C.’xcb’      D.’\ab
3、下列语句中,错误的是 (B )                                                   
A、#define PI              B、#include <>;
C、if(2);                      D、for(;;) if(1) break;
4、能正确表示逻辑关系:“a10a≤0”的C语言表达式是  ( )                   
A、 a>=10 or a<=0  B a>=0|a<=10   
  C a>=10 &&a<=0  D a>=10a<=0
5、以下对break语句使用的正确描述是 ( )                                       
A、可以出现在程序中的任何位置 
B、只能出现在循环结构中或switch结构中
C、只能出现在switch结构中     
D、只能出现在循环结构中
6. C语言程序的基本单位是(C )。   
A.程序行        B.语句        C.函数          D.字符
7、已知各变量的类型说明如下:( )
    int m=6,n, a, b;
    unsigned long w=8;
    double x=, y=;
    则以下符合C语言语法的表达式是( A)。
    A.a+=a-=(b=2)*(a=8)                      B. n=n*3=18
    C.x%3                                  D.y=float (m)
8、已有定义:char x[]=“ab”,y[ ]={a,b };,以下叙述中正确的是( C)           
A、数组x和y的长度相同      B、x数组长度小于y数组长度
C、x数组长度大于y数组长度  D、上述说法都不对
9、设有定义“int x=3,y,*p=&x”,则下列语句中使y不为3的语句是 (D )             
A、y=*&x    B、y=*p    C、y=x    D、y=&x
10设x、y、z均为int型变量,则执行语句:x=y=3;z=++x||++y;后,y的值为( )       
A不定值   B4   C3   D1
11.有如下程序段:
    int  x1,x2;
char  y1,y2;
scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);
若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是( A)。(注:└┘代表空格)
A.10A└┘20B                                B.10└┘A20B
C.10 └┘A└┘20└┘ B                            D.10A20└┘B
12.有如下程序段,对应正确的数据输入是(A)。
float a,b;
scanf(”%f%f”, &a,&b);
printf(”a=%f,b=%f”, a,b);
A.<回车>                          B.,<回车> 
<回车>
C.A=,B=<回车回车>
13. 设a=4,b=6,c=7,d=8,m=3,n=2, 则执行(m=a>b) && (n=c>d)后n的值为(B)。
A.0          B.2          C.3            D.1
14.判断char型变量s是否为小写字母的正确表达式是(C)。
  A.’a’ <= s<=’z’                B.(s>=’a’) & (s<=’z’)
    C.(s>=’a’) && (s<=’z’)        D.(’a’<=s) and (’z’>=s)
15、以下不能定义为用户标识符的是
        A) scanf            B) Void            C) _3com_        D) int
16.  以下对一维数组a进行正确初始化的是( C)。     
A. int a[10]=(0,0,0) ;                B. int a[10]={ };
C. int a[ ]={0};                        D. int a[10]={10*1};
17. 下述对C语言字符数组的描述中错误的是( C)。 
A. 字符数组可以存放字符串
B. 字符数组中的字符串可以整体输入、输出
C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D. 不可以用关系运算符对字符数组中的字符串进行比较
18.    以下说法中正确的是(C )。
A.    C语言程序总是从第一个的函数开始执行
B.    在C语言程序中,要调用的函数必须在main()函数中定义
C.    C语言程序总是从main()函数开始执行
D.    C语言程序中的main()函数必须放在程序的开始部分
19.如果在一个函数的复合语句中定义了一个变量,则该变量(A )。
A.    只在该复合语句中有效,在该复合语句外无效
B.    在该函数中任何位置都有效
C.    在本程序的源文件范围内均有效
D.    此定义方法错误,其变量为非法变量
20.如果要限制一个变量只能为本文件所使用,必须通过(C )来实现。
A.    外部变量说明                        B. 静态局部变量
C.    静态外部变量                        D. 局部变量说明
21.有如下函数调用语句
f1 (a,b-c,(d,e));
该函数调用语句中,含有的实参个数是(A )。
A. 3          B. 4            C. 5              D. 有语法错
22.下面叙述中正确的是(A )。
A.    带参数的宏定义中参数是没有类型的
B.    宏展开将占用程序的运行时间
C.    宏定义命令是C语言中的一种特殊语句
D.    使用#include命令包含的头文件必须以“.h”为后缀
23.下面叙述中正确的是( D)。
A.#define和scanf都是C语句      B.#define是C语句,而scanf不是
C. scanf是C语句,但#define不是    D.#define和scanf都不是C语句
24. 若有说明:int a=8, *p=&a, *q=p;,则以下非法的赋值语句是(B)。
A. p=q;          B.q=a;        C. a=*q;        D. *p=*q;
25、以下选项中,与k=n++完全等价的表达式是(A )。
  A) k=n,n=n+1     B) n=n+1,k=n     C) k=++n    D) k+=n+1
26.以下函数值的类型是(A )。
fun (float y)
{
float z;
z= y-4;
return z;
}
A. int        B. float      C. void            D.不确定
二、填空题34分
1、结构化设计中的三种基本结构是顺序选择循环
2、在C语言中(以16位PC为例)一个浮点型常量在内存中所占的字节数是  【16】
3. 定义int x,y;执行y=(x=1,++x,x+2);后, y的值是【】。
4.下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在【】内填空。
x
字符串常量123在内存中的字节数是y
2<x<=10
x(x+2)
-1<x<=2
1/x
x<=-1
x-1
#include
main()
{
int x,y;
scanf(%d”, &x);
if (x>2 && x<=10) y=x*(x+2);
else if (【x>-1 && x<=2】) y=1/x;
else if (x<=-1) y=x-1;
else 【y= -1】;
if (y!= -1) printf(%d”,y);
else printf(error”);
}
5.下列程序执行后的输出结果是( 5 )。
#define MA(x) x*(x-1)
main()
{
int a=1,b=2; 
printf("%d \n",MA(a+b));
}
6、下面程序的功能是:计算1到10之间数之和,请填空。
#include <>
main()
{ int a, b, i;
a=0;
for(i=0;i<=10;i+=2)
{
_____________;
}
printf(“偶数之和=%d\n”,a);
}
7、以下程序的功能是出x,y,z三个数中的最小值,请填空。
main( )
{ int x=4,y=5,z=8;
int u,v;
u=x<y? x:y       ; 
v=u<z?   u:v  ; 
print(″%d\n″,v);
}
8.如果输入‘2’,‘3’,‘4’,‘5’,程序运行输出的是_2345_______。
#include<>
main()
{char c;
int i,k;
k=0;
for(i=0;i<4;i++)
{while(1)
{ c=getchar();if(c>='0'&&c<='9')break;}
k=k*10+c-'0';
}
printf("k=%d\n",k);
}
9. 以下程序运行的结果是_8________。
#include<>
main()
{ int a,b; 
for(a=1,b=1;a<=100;a++)
{ if(b>=20)break;
if(b%3==1)
{ b+=3;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。