C语言程序设计复习题一
一、  单项选择题
1. 指针s所指字符串的长度为
char *s="\\"Name\\Address\n";
A) 19      B) 15        C) 18        D)说明不合法
2. 若有下面的程序片段:
int a[12]={0}, *p[3], **pp, i;
for(i=0; i<3; i++)
p[i]=&a[i*4];
pp=p;
则对数组元素的错误引用是
A) pp[0][1]        B) a[10]            C) p[3][1]          D) *(*(p+2)+2)
3. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A) a<>0        B) !a            C) a=0            D) a
4. 若已定义:
    int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
    其中 0i9, 则对a数组元素不正确的引用上
  A) a[p-a]    B) *(&a[i])      C) p[i]        D) a[10]
5. 以下程序的输出结果是
      main(  )
    {    int    x=10y=10I
          for(i=0x>8y=++i)
              printf("%d%d "x--y)
    }
  A) 10 1 9 2  B) 9 8 7 6  C) 10 9 9 0  D) 10 10 9 1
6. 下面程序的输出是
void prtv(int *x)
printf("%d\n", ++*x);}
main()
{ int a=25;
prtv(&a);}
A) 23      B) 24          C) 25        D) 26
7. 下面能正确进行字符串赋值操作的语句是
A)char s[5]={"ABCDE"};    B)char s[5]={'A'、'B'、'C'、'D'、'E'};
C) char *s;s="ABCDEF";    D)char *s; scanf("%s",s);
8. 设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;t=++x||++y&&++z;
A)不定值    B)2    C)1    D)0
9. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*p1+*p2;      B)p2=k;
C)p1=p2;          D)k=*p1 *(*p2);
10. 请读程序:
#include<stdio.h>
#define SUB(X,Y) (X)*Y
main()
{ int a=3, b=4;
printf("%d", SUB(a++, b++));
}
上面程序的输出结果是
A) 12              B) 15               
C) 16                D) 20
11. sizeof(float)是:
A) int  B) float    C) double      D) 不确定
12. 若执行下面的程序时从键盘上输入3和4,则输出是
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);}
A) 14          B) 16        C) 18          D) 20
13. 以下程序的输出结果是
# include <stdio.h>
main()
  { printf("%d\n",NULL);  }
A) 不确定的(因变量无定义)  B)0    C)-1    D)1
14.请读程序:
#include<stdio.h>
f(char *s)
{ char *p=s;
while( *p!='\0') p++;
return(p-s);
}
main()
{ printf("%d\n",f("ABCDEF"));}
上面程序的输出结果是
A) 3      B) 6            C) 8              D) 0
15. 下面各语句行中,能正确进行赋字符串操作的语句行是
A) char st[4][5]={"ABCDE"};        B) char s[5]={'A','B','C','D','E'};
C) char *s; s="ABCDE";        D) char *s; scanf("%s",s);
16. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A) *p=&a;        scanf("%ld",p);
B) p=(long *)malloc(8);  scanf("%ld",p);
    C) scanf("%ld",p=&a);
    D) scanf("%ld",&a);
17. 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是
  A) p+1      B) a+1    C) a++    D) ++p
18. 下面程序的输出是
main()
{ enum team {my,your=4,his,her=his+10};
printf("%d %d %d %d\n",my,your,his,her);}
A) 0 1 2 3      B) 0 4 0 10        C) 0 4 5 15        D) 1 4 5 15
19. 以下程序输出结果是
main( )
{  int m=5;
if(m++>5)printf("%d\n",m);
else printf("%d\n",m--);  }
A)7      B)6        C)5      D)4
20. 以下程序运行后,输出结果是 int d=1;
fun(int p)
{ int d=5;
d+=p++;
printf("%d",d);
}
main()
{  int a=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84    B)99    C)95      D)44数组全部赋值为1
21.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A)字母        B)数字        C)下划线        D)连接符
22.计算机能直接执行的程序是( )。
A)源程序      B)目标程序    C)可执行程序    D)汇编程序
23.有以下定义语句,编译时会出现编译错误的是( )。
A)char a='a';    B)char a='\n';    C)char a='aa';    D)char a='\t';
24.以下选项中正确的定义语句是( )。
A)double a; b;    B)double a=b=7;    C)double a=7, b=7;    D)double, a, b;
25.以下不能正确表示代数式2ab除cd的C语言表达式是( )。
A)2*a*b/c/d    B)a*b/c/d*2    C)a/c/d*b*2    D)2*a*b/c*d
26.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A)x=y==5;    B)x=n%2.5;    C)x+n=1;    D)x=5=4+1;
27.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)k++    B)k+=1    C)++k    D)k+1
28.以下选项中,当x=3时,值为0的表达式是()。
A)x%2==1    B)x/2    C)x%2!=0    D)x%2==0
29.下列关于C语言文件的叙述中正确的是()。
A)文件是由一组相关数据组成,只能构成二进制文件 
B)文件是由一组相关结构组成,可以构成二进制文件或文本文件
C)文件是由一组相关数据组成,可以构成二进制文件或文本文件 
D)文件是由一组相关数据组成,只能构成文本文件
30.以下叙述中错误的是()。
A)C语言是一种结构化程序设计语言     
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题   
D)结构化程序设计提倡模块化的设计方法
31.有以下程序
#include <stdio.h>
void main()
{ char c1,c2;
  c1=’A’+’8’-‘4’;
  c2=’A’+’8’-‘5’;
  printf(“%c,%d\n”,c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是()
A)E,68    B)D,69    C)E,D    D)输出无定值
32.已知字符‘A’的ASCⅡ代码值是65,字符变量c1的值是‘A’,c2的值是’D’。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A)A,B    B)A,68    C)65,66    D)65,68
33.若变量已正确定义为int型,要通过语句scanf("%d,%d,%d", &a, &b, &c);给a赋值1、给b赋值2、给c 赋值3,以下输入形式中错误的是()。
A)<空格>1,2,3<回车>                        B)1<空格>2<空格>3<回车>   
C)1, <空格><空格>2, <空格><空格>3<回车>    D)1,2,3<回车>
34.在嵌套使用if语句时,C语言规定else总是()。
A)和之前与其具有相同缩进位置的if配对    B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对    D)和之前的第一个if配对

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