南京晓庄期末C语言练习题
一、选择题
1. 设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是( )
A.3B.0 C. -12D. 9
2. 下列选项中 ( ) 不是字符串常量。
A. abcd B. “aads”C. “12348”D. “0”
3. 一个C程序的执行是从( )
A.main()函数开始,直到main()函数结束
B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束
D.main()函数开始,直到最后一个函数结束
4、运行以下程序,当数据的输入形式为:56,31时,程序的输出结果为________。
#include
main( )
{ int a,b;
scanf("%d%d",&a,&b);
printf("a-b=%d\n",a-b);}
A、不确定值 B、a-b=25 C、a-b=56 D、a-b=31
5、下面程序段的运行结果是char??c[ ]="\t\v\\\0will\n";
printf("%d",strlen(c));
A.14 B.9 C.3 D.字符串中有非法字符,输出值不确定int i,j;则执行了j=(i=1,i+9)>9?i++||++i:++i; 后i,j的值为 。
A、10,10 B、2,2 C、2,3 D、2,1
7、设a和b为整型变量,执行语句:b=(a=2+3,a*4),a+5; 后,a,b的值分别为________。
A、 5,20 B、 5,25 C、 20,25 D、 5,10
8、退出一个循环语句(不终止函数的执行)的有效措施是使用________。
A、return语句 B、exit语句 C、break语句 D、continue语句
9、下面的常数表示有一个不正确,不正确的是________。
A、’\55’ B、0X2A3 C、 -0.3 D、 ’103’
10.有以下程序
main()
{ int n=4;
while(n--)
printf("%d ",--n);
}
程序执行后的输出结果是( )。
A) 2 0 B) 3 1 C) 3 2 1 D) 2 1
11.下列合法的数组定义是。
A) a[]="string"; B)int a[5]={0,1,2,3,4,5};
C)char a="string"; D)char a[5]={0,1,2,3,4,5};
12. 已知有声明 :int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};,若需要引用值为12的数组元素,则下列选项中错误的是( )。
A. *(a+2)+3 B. *(*(a+2)+3) C. *(a[2]+3) D. a[2][3]
13.若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( )。
A. p1=&m; p2=&p1; B. p1=&m; p2=&n;*p1=*p2;
C. p1=&m; p2=p1; D. p1=&m; *p2=*p1;
14.若有以下定义:
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*p)[3]=a;
则能够正确表示数组元素x[1][2]的表达式是________。
A、(*p+1)+2 B、*(*(p+4))
C、*(*(p+1)+2) D、*((*p+1))15.已有定义int k=2,*p1,*p2; 且p1和p2均已指向变量k,下面错误的执行语句是( )。
A.k=*p1+*p2; B.p2=k;
C.p1=p2; D.k=*p1*(*p2)
17.若有定义:int[2][3];则对a数组的第i行第j列元素值的正确引用为( )
A.*(*(a+i)+j) B