一、选择题
1.设char cl; , 则cl中为小写英文字母字符的正确表达式为( ) A. ?a?<=c1=?z? B. (cl>=?a?)&&(cl<=?z?) C. (cl>=a)&&(c1<=z) D. (?a?<=c1)| |(?z?>=c1) 2.一维数组a的正确说明语句为( )
A. int a(10); B. int n=10, a[n]; C. int n; D. #define SIZE 10 scanf(″%d″,&n); int a[n];
3.已知字符?A?的ASCII码值是65,且char cl=?A?, c2=?D?;则执行语句 printf(″%d,%d\\n″,cl,c2-2);后的输出结果是( )
A. A, D B. A, B C. 65, 68
D. 65, 66 int a[SIZE];
4.设int a=7; float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是( )
A. 2.75 C. 2.5
B. 3.25 D. 0.0
5.构成C语言程序的基本单位是( )。
A.过程 B.函数 C.语句 D.命令 6.下列选项中,不正确的赋值语句是( )。
A.y--; B.x=y=z=0; C.m=n%k; D.t=a+x=3; 7.合法的C语言标识符是( )。
A. 5dm B. a>b C. Hh D. $s 8.设int x=2,y=4;,值为非0的表达式是( )
A. 1/x*y C. 1.0/x/y
B. 1/(x*y) D. 1/x/ (double)y
9.设int i=l, k=2;, 则错误的循环语句是( ) A. for(i=0,k=k-1;i++,k++) s; B. for(;k-1;i++) s;
第 1 页 共 13 页
C. for(i=1,k=4;k--;i++) s; D. for(;k--;) s; 10.设typedef struct{int a;char s[10];} TYPE; TYPE u1; 则printf(”%d\\n”,sizeof(u1));的输出结果是( )
A. 2 B. 12 C. 14
D. 16
11.设char sl[ ]=“string1”,s2[8], *s3, *s4=“string2”;,则对系统函数strcpy的错误调用是( ) A. strcpy(s1, s4); B. strcpy(s4, “string2”); C. strcpy(“string2”,s2); D. strcpy(s4,s1);
12.正确的数组定义及初始化的是( ) A. char a[10]={“string”}; B. int a[5]={0,1,2,3,4,5}; C. char a={“string”}; D. int a[ ]={x,y,z}; 13.若有以下定义,则数值为4的表达式是( )。
int a[3][4]={{1,2},{3,4},{5,6}},(*p)[4]=a;
A.p[1][1] B.p++,*(p+1) C.a[2][2] D.*(p+1*4+1) 14.在循环体中用来强制继续循环的语句是( ) A. break
B. continue
C. exit D. return
15.有说明 struct { char name[15],sex; int age;float score;}stu,*p=&stu;
以下语句中正确的是( )。
A.scanf(“%c”,p->sex); B.scanf(“%s”,stu.name);
C.scanf(“%d”,stu.age); D.scanf(“%f”,p->score); 16.设int a=2,b=5;,结果为0的表达式是( )
A. a%b C.!(a=b)
B. a&&b D. a!=b
17.正确的数组定义及初始化的是( )
第 2 页 共 13 页
A. char a[10]={“string”}; C. char a={“string”};
B. int a[5]={0,1,2,3,4,5}; D. int a[ ]={x,y,z};
18.设int a=1,b=2,c=3,d=4,f;,执行语句f=(a!=b)?c++:d++;后f的值是( )
A. 2 C. 4
B. 3 D. 5
19.设int m=5;,语句while (m==0)printf (″%d″,m-=2);的循环体执行的次数是( )
A. 0 B. 1 C. 2
D. 无限
20.设int a;执行表达式(a=1,2,3),a+1后,a和表达式的值分别是( A. 1和2 B. 2和3 C. 3和4
D. 4和5
21.下列关于函数定义正确的是( ) A. fun(int x,y){int z;return z;} B. void fun(int x,int y){return x+y;}
C. fun(x,y){int x,y;double z;z=x+y;return z;} D. double fun(int x,int y) {double z;z=x+y;return z;) 22.下列用户自定义标识符正确的是( ) A. 4a
B. b_1 C. -& D. *p
23.下列程序段正确的是( ) A. char s[ ]={?xyz?}; B. float *p,i; scanf(??%s”,s); p=*p+i;
C. char s[5]=?word?; D. int a[5]={0},*p=a; puts(s);
*p=*(p+1);
24.关于编译预处理命令,叙述正确的是( ) A. 预处理命令都以“#”开头 B. 预处理命令必须位于程序的首部
C. 预处理命令只能实现宏定义和条件编译的功能
第 3 页 共 13 页
)
D. 预处理命令必须位于函数外部
25.设有定义“int a=3,b,*p=&a”,则下列语句中使b不为3的语句是( )。 A.b=*&a; B.b=&*a; C.b=a; D.b=*p; 26.下面各选项中,有错的语句或声明是( )。
A.char st[4][5]={“ABC”}; B. char s[5]={?A?,?B?,?C? }; C. char *s;s=”ABC”; D. char s[5];s=”ABC”; 27.若有以下定义,则数值为4的表达式是( )。
int a[3][4]={{1,2},{3,4},{5,6}},(*p)[4]=a;
A.p[1][1] B.p++,*(p+1) C.a[2][2] D.*(p+1*4+1) 28.对如下的结构定义,则正确的语句是( )
struct student {char name[20]; char sex; int age; }Li; A.Li.name=”Li”; B.Li={“Li”,?M?,20}; C.Li.age=20; D.struct Li={“Li”,?M?,20};
29.在一个C语言程序中( )
A. 主函数只能有一个 C. 非主函数只能有一个
B. 主函数可以有多个
D. 主函数和非主函数都可以有多个
30.关于指针的说法不正确的是( ) A.一个指针变量只能指向同一类型的变量 B.一个变量的地址成为该变量的指针
C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D.两个同类型的指针变量可以进行加法和减法运算。 二、填空题
1.设有宏定义#define X 2+3,则printf(“%d\\n”,4*X);的输出结果是____11____。 2.设int a=12;,语句printf(″%d\\n″,(a/3,a0));的输出结果是 12 。 3.函数中未指定存储类型的局部变量,其隐含的存储类型是 auto 。
4.若全局整型变量未初始化,则默认的初始值是 0 。 5.调用系统函数strcmp(),必须在程序的开头写上一条文件包含命令是
第 4 页 共 13 页