《C语言测试题(16页).doc》由会员分享,可在线阅读,更多相关《C语言测试题(16页).doc(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-一、选择题(每小题1.5分,共30分)1、C语言中,double类型数据占( )个字节。 A)1 B)2 C)4 D)82、以下数据中,不正确的数值或字符常量是( )。 A) 0.0 B) 5L C) o13 D) 98613、已知各变量的类型定义如下, 则以下不符合C语言语法的表达式 是:( )。 int i=8,k,a,b; double x=1,y=5; A)k=i+ B)(int)x+0.4 C)y+=x+ D)a=2*a=34、在以下给出的表达式中, 与do.while(E)语句中的(E)不等价的 表达式是:( )。 A)(!E=0) B)(E0|E0) C)(E=0) D)(E!
2、=0)5、已知各变量的类型说明如下:则以下不符合C语言语法的表达式是( )。 int k, a, b, w=5; float x=1.42; A) x%(-3) B) w+=-2 C) k=(a=2, b=3, a+b) D) a+=a-=(b=4)*(a=3)6、在C语言的if语句中,用作判断的表达式为( )。 A) 关系表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式7、若有以下定义和语句,则输出结果是( )。 static char s12=a book!; printf(d,strlen(s); A) 12 B) 8 C) 7 D) 6 8、以下叙述正确的是( )。 A)
3、在C程序中,main函数必须位于程序的最前面 B) C程序的每一行中只能写一条语句 C) C语言本身没有输入输出语句 D) C程序的执行总是从其第一个函数开始9、由给出的数据输入和输出形式,程序中输入输出语句的正确内容是( )。 main( ) int x; float y; printf ( enter x, y: ); 输入语句 输出语句 输入形式 enter x, y: 2 3.4 输出形式 x+y=5.40 A)scanf ( %d, %f , &x, &y); B) scanf ( %d%f , &x, &y); printf ( nx+y=%4.2f , x+y); printf
4、( nx+y=%4.2f , x+y); C) scanf ( %d%f , &x, &y); D) scanf ( %d%3.1f , &x, &y); printf ( nx+y=%6.1f , x+y);printf ( nx+y=%4.2f , x+y);10、在C语言中,为了结束由while语句构成的循环,while后一对圆括 号中表达式的值应该为( )。A)0 B)1 C)true D)非011、以下字符中,不正确的C语言转义字符是( )A) t B) 011 C) n D) 01812、以下说法有错的是:( )。 A)字符0可以通过赋初值或输入字符串时,由系统自动填加。 B)在C
5、语言中字符数组可以等价于字符串变量。 C)可以利用二维字符数组作为字符串数组。 D)可以把字符型一维数组作为字符串变量。13、下面程序段的运行结果是( )。 x=y=0; while ( x15 ) y+, x+=+y; printf ( %d, %d , y, x);A) 20, 7 B) 6, 12 C) 20, 8 D) 8, 2014、能满足当x的值为偶数时为“真”,为奇数时为“假”的表达式是:( )。A)x%2=0 B)!x%2!=0 C)(x/2*2-x)=0 D)!(x%2)15、下列程序的输出结果为:( )。 #include main() int i=0,j=0,a=6; i
6、f(+i0)|(+j0)a+; printf(i=%d,j=%d,a=%dn,i,j,a); A)i=0,j=0,a=6 B)i=1,j=1,a=7 C)i=1,j=0,a=7 D)i=0,j=1,a=716、设有以下定义和语句: 则下列语句中对结构体成员不正确的 引用是( )。 struct pupil char name20; int age; int sex; pup5, *p; p=pup; A) scanf(%s, pup0.name);B) scanf(%d, &pup0.age); C) scanf(%d, &(p-sex);D) scanf(%d, p-age);17、以下程序
7、的运行结果为( )。 #define PT 3.5 #define S(x) PT*x*x main() int a=1, b=2; printf(4.1f n,S(a+b); A) 14.0 B) 31.5 C) 7.5 D) 10.518、下面程序的输出是( )。 main() char *s=wbckaaakcbw; int a=0, b=0, c=0, x=0, k; for(;*s; s+) switch(*s) case c : c+; case b : b+; default : a+; case a : x+; printf(a=d,b=d, c=d, x=dn, a, b,
8、c, x); A) a=8, b=4, c=2, x=11 B) a=4, b=2, c=2, x=3 C) a=8, b=4, c=2, x=3 D) a=4, b=4, c=2, x=3 19、若有下列定义,则对a数组元素地址的正确引用是( ) int a5,*p=a;A) &a5 B) p+2 C) a+ D) &a 20、若有定义:int a410;则以下选项中对数组元素aij的错误 引用是:( )。(此处0=i4,0=j10) A)*(&a00+10*i+j) B)*(a+i)j C)*(*(a+i)+j) D)*(ai+j)二、填空题(每空2分,共10分) 若有以下a数组,数组元素
9、和它们的值如下所示: 数组元素:a0a1a2a3a4a5a6a7a8a9 元素中的值:9 4 12 8 2 10 7 5 1 3 (1) 该数组中数组可用的最小下标值是( );最大下标值 是( )。 (2) 该数组中下标最小的元素名字是( ); (3) 该数组的元素中,数值最小的元素的下标值是( ); (4) 对该数组进行定义并赋以上初值的语句是( ) 。三、阅读程序题(每小题10分,共30分)1、执行以下的程序段后,a=( ), b=( ), c=( )。 int x=10, y=9; int a, b, c; a=( x-=y+) ? x- : y+; b=x+; c=y;2、下面程序的运
10、行结果是 ( )。 main( ) int i,j; for(i=0; i=3; i+ ) for(j=0; j=5; j+ ) if ( i=0 | j=0 | i=3 | j=5 ) printf ( * ); else printf ( ); printf ( n); 3、下列程序的输出结果是( ) int i=8,j=9;float x=123.456; printf(i=d j=dn,i,j);四、编程题(每小题10分,共30分)1、 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,.,编程 计算该序列的前20项之和。2、已知A(3行4列)、B(4行4列)矩阵,求C=A*B(3行4列)矩阵。3、现有n个数据,编程实现按下列方式排列。 967854321528436588 (以9个数据为例:输入数据为:78 65 54 32 28 96 43 88 15 输出数据为:96 78 54 32 15 28 43 65 88 即:最大的数放第一位,第二大的数放最后,第三大的数放在第一大数的右边,第四大数放在第二大数的左边,依次类推。 要求:数据的输入和输出在主函数内完成,数据的排列在子函数内完成,且必须用指针实现。)第 16 页-