1、C 语言程序设计期末考试试卷(A 卷)课程名称 C 语言程序设计 课程编号 84810005 任课教师 题 型 单选题 填空题 阅读题 编程 题 总 分分 值 30 26 24 20 100得分得分 评阅人一、单选题:(共 30 题,每题 1 分,共 30 分)1、在计算机内一切信息的存取、传输和处理都是以( )形式进行的。A. ASCII 码 B. 二进制 C. 十进制 D. 十六进制2、下列无符号整数中最大的数是( )。A. (10100011)2 B. (FF)16 C. (237)8 D. 7893、 一个 C 语言程序是由( ) 。A. 一个主程序和若干子程序组成 B. 函数组成C.
2、 若干过程组成 D. 若干子程序组成4、 下面四个选项中,均是不合法的用户标识符的选项是( )。A. A P_0 do B. float la0 _AC. b-a sizeof int D. _123 temp int5、 下面四个选项中,均是不合法的转义字符的选项是( )。A. “ xf B. 1011 abC. 011 f D. abc 101 xlf6、 下面程序段输出结果是( ) 。int i = 5, k;k = (+i) + (+i) + (i+);printf (“%d,%d“, k, i);A. 24,8 B. 21,8 C.21,7 D. 24,7院(系): 专业: 年级:
3、学生姓名: 学号: -密 -封 -线 -第 1 页(共 6 页)7、若有定义: int k = 7, x = 12;,则能使值为 3 的表达式是 ( )。A. x %= (k %= 5) B. x %= (k k % 5)C. x % = k k % 5 D. (x %= k) - (k %= 5)8、 若有说明语句:int a, b;,用户的输入为 111222333,结果 a 的值为 111,b 的值为 333,那么以下输入正确的语句是( ) 。A. scanf (“%*3d%3c%3d“, B. scanf (“%3d%*3c%3d“, C. scanf (“%3d%3d%*3d“, D
4、. scanf (“%3d%*2d%3d“, 9、对于条件表达式(k) ? (i+) : (i-)来说,其中的表达式 k 等价于( ) 。A. k = 0 B. k = 1 C. k != 0 D. k != 110、 若 a、b 、c1 、c2、x、y 均是整型变量,正确的 switch 语句是( ) 。A. swich (a + b); B. switch (a * a + b * b) case 1: y = a + b; break; case 3;case 0: y = a - b; break; case 1: y = a + b; break;case 3: y = b - a,
5、 break; C. switch a D. switch (a - b) case c1: y = a - b; break default: y = a * b; breakcase c2: x = a * d; break case 3: case 4: x = a + b; breakdefault: x = a + b; case 10: case 11: y = a - b; break; 11、 下面程序的运行结果是( )。#include void main ( )int y = 10;do y-; while (-y);printf (“%dn“, y-); A. -1 B.
6、 1 C. 8 D. 012、 下面程序段的运行结果是( )。x = y = 0;while (x x);A. 10 B. 11 C. 51 D. 6026、 以下程序的输出是( ) 。union myun struct int x, y, z; u;int k; a;void main ( ) a.u.x = 4; a.u.y = 5; a.u.z = 6; a.k = 0;printf (%dn“, a.u.x);A. 4 B. 5 C. 6 D. 025、有定义如下:struct sk int a;float b; data ,*p;如果 p = int num; float s4; s
7、tudent50;并且结构体数组 student 中的元素都已有值,若要将这些元素写到硬盘文件 fp 中,以下不正确的形式是( ) 。A. fwrite (student, sizeof(struct st), 50, fp);B. fwrite (student, 50*sizeof(struct st), 1, fp);C. fwirte (student, 25*sizeof(struct st), 25, fp);D. for (i = 0; i void main ( )int i, j;for (i = 0; (3) ; i+)j = i * 10 + 6;if ( (4) ) c
8、ontinue;printf (“%d“, j);33、下面程序的功能是将键盘输入的字符串 str 中的所有 c字符用C替换。请将程序补充完整。#include #include void main ( ) int i;char str80;gets (str);for (i = 0; (5) ; i+)if (stri != c) (6) ;stri = C;printf (“%sn“, str);34、下面程序的功能是实现数组元素中值的逆转。#include void invert(int *s,int num);void main() int i, n=10, a10=1,2,3,4,5
9、,6,7,8,9,10;invert( a, n-1 );for ( i=0;istruct stuinf char name20; /* 学生姓名 */int score; /* 学生成绩 */ stu, *p;main ( ) p = for (a = 1, b = 1; a = 10) break;if (b % 3 = 1) b += 3; continue; printf (“a=%dn“, a);38、 以下程序的输出结果是 (2 ) 。 main() int a=0,b=1,c=0,d=20;if ( a ) d=d-10;else if ( !b )if ( !c ) d=15
10、;else d=25;printf( “d=%dn“, d );-密 -封 -线 -第 5 页(共 6 页)39、 下面程序的输出结果是 (3) 。main() int i,j,x=0;for (i=0;imain( ) int n33, i, j;for(i=0;i3;i+ )for(j=0;j3;j+ )nij = i+j;for(i=0;i2;i+ )for(j=0;j2;j+ )ni+1j+1 += nij;printf( “%dn“, nij );41、下面程序的输出结果是 (5) 。void ss (char *s, char t) while (*s) if (*s = t) *s = t - a + A; s+;void main ( ) char str1100 = “abcddfefdbd“, c = d;ss (str1, c); printf (“%sn“, str1);