您的当前位置:首页正文

C语言程序设计试卷(A卷)

来源:九壹网
word完美格式

- -- -- -- --- -- -- -- --- -- ---------学号: --- -- --- -- -- -- --- -- -- -- ---- 线 --名:----------学生姓----- -- -- --- -- --- 封 -------年级:--- -- --- -- --- -- -- -- --- -- --- : 密 ---专业---- --- -- --- -- --- -- -- -- ---: ------系)-----院(--------- 《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. 789 3、 一个C语言程序是由( )。 A. 一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 4、 下面四个选项中,均是不合法的用户标识符的选项是( )。 A. A P_0 do B. float la0 _A C. b-a sizeof int D. _123 temp int 5、 下面四个选项中,均是不合法的转义字符的选项是( )。 A. '\\\"' '\\\\' '\\xf' B. '\\1011' '\\' '\\ab' C. '\\011' '\\f' '\\}' D. '\\abc' '\\101' 'xlf' 6、 下面程序段输出结果是( )。 int i = 5, k; k = (++i) + (++i) + (i++); printf (\"%d,%d\A. 24,8 B. 21,8 C.21,7 D. 24,7 精心整理 学习帮手

word完美格式

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. scanf (\"%3d%*2d%3d\ 9、对于条件表达式(k) ? (i++) : (i--)来说,其中的表达式k等价于( )。 A. k == 0 B. k == 1 C. k != 0 D. k != 1 10、 若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, break; } } C. switch a D. switch (a - b) { { case c1: y = a - b; break default: y = a * b; break case c2: x = a * d; break case 3: case 4: x = a + b; break default: x = a + b; case 10: case 11: y = a - b; break; } } 11、 下面程序的运行结果是( )。 #include void main ( ) { int y = 10; do { y--; } while (--y); printf (\"%d\\n\ } A. -1 B. 1 C. 8 D. 0 12、 下面程序段的运行结果是( )。 x = y = 0; while (x < 15) y++, x += ++y; printf (\"%d, %d\A. 20, 7 B. 6, 12 C. 20, 8 D. 8, 20 第 1 页(共 6 页)

精心整理 学习帮手

word完美格式

13、以下程序中,while循环的循环次数是( )。 int i = 0; while (i < 10) { if (i < 1) continue; if (i == 5) break; i++; } A. 1 B. 10 C. 6 D. 死循环,不能确定次数 14、设有数组定义: char array[ ] = \"China\"; 则数组 array所占的空间为( )。 A. 4个字节 B. 5个字节 C. 6个字节 D. 7个字节 15、以下不能正确进行字符串赋初值的语句是( )。 A. char str[5] = \"good!\"; B. char str[ ] = \"good!\"; C. char str[8] = \"good!\"; D. char str[5] = {'g', 'o', 'o', 'd'}; 16、 以下程序的输出结果是( ) void main ( ) { char st[20] = \"hello\\0\\\\\\\\"; printf (%d %d \\n\} A. 9 9 B. 5 20 C. 13 20 D. 20 20 17、以下正确的说法是( )。 A. 定义函数时,形参的类型说明可以放在函数体内。 B. return后边的值不能为表达式。 C. 如果函数值的类型与返回值类型不一致,以函数值类型为准。 D. 如果形参与实参类型不一致,以实参类型为准。 18、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( )。 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register) 19、 下面能正确进行字符串赋值操作的是( )。 A. char s[5] = {\"ABCDE\ B. char s[5] = {'A', 'B', 'C', 'D', 'E'}; C. char *s;s = \"ABCDE\"; D. char *s; scanf (\"%s\ 20、 若有下面的程序段,则下列叙述正确的是( )。 char s[ ] = \"china\"; char *p; p = s; A. s和p完全相同 B. 数组s中的内容和指针变量p中的内容相等 C. s数组长度和p所指向的字符串长度相等 D. *p与s[0]相等 精心整理 学习帮手

------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 --------------------------------------------------------- word完美格式

21、 设已有定义: char *st = \"how are you\"; 下列程序段中正确的是( )。 A. char a[11], *p; strcpy (p = a + 1, &st[4]); B. char a[11]; strcpy (++a, st); C. char a[11]; strcpy (a, st); D. char a[ ], *p; strcpy(p = a[1], st + 2); 22、若指针p已正确定义,要使p指向两个连续的短整型动态存储单元,不正确的语句是( )。 A. p = 2*(short *) malloc (sizeof(short)); B. p = (short *) malloc (2*sizeof(short)); C. p = (short *) malloc (2*2); D. p = (short *) calloc(2, sizeof(short)); 23、 从下列选项中选择不会引起二义性的宏定义是( )。 A. #define POWER (x) x * x B. #define POWER (x) (x) * (x) C. #define POWER (x) (x * x) D. #define POWER (x) ((x) * (x)) 24、 根据下面的定义,能打印出字母 M 的语句是( )。 struct person { char name[9]; int age; }; struct person class[10] = {\"John\A. printf (\"%c\\n\ B. printf (\"%c\\n\C. printf(\"%c\\n\ D. printf (\"%c\\n\ 25、 以下程序的输出是( )。 struct st { int x; int *y;} *p; int dt[4] = {10, 20, 30, 40 }; struct st aa[4]={ 50, &dt[0], 60, &dt[0], 60, &dt[0], 60, &dt[0] }; void main ( ) { p = aa; printf (\"%d\\n\} A. 10 B. 11 C. 51 D. 60 26、 以下程序的输出是( )。 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 (%d\\n\} A. 4 B. 5 C. 6 D. 0 第 2 页(共 6 页) 精心整理 学习帮手

word完美格式

精心整理 学习帮手

------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 --------------------------------------------------------- 27、 函数 rewind 的作用是( )。 A. 使位置指针重新返回文件的开头 B. 将位置指针指向文件中所要求的特定位置 C. 使位置指针指向文件的末尾 D. 使位置指针自动移至下一个字符位置 28、 函数调用语句:fseek(fp, -20L, 2);的含义是( )。 A. 将文件位置指针移到距离文件头20个字节处 B. 将文件位置指针从当前位置向后移动20个字节 C. 将文件位置指针从文件末尾处退后20个字节 D. 将文件位置指针移到离当前位置20个字节处 29、 设有以下结构体类型: struct st { char name[8]; int num; float s[4]; } student[50]; 并且结构体数组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 < 50; i++) fwrite (student+i, sizeof(struct st), 1, fp); 30、 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是( )。 A. fopen (\"A:\\abc.txt\ B. fopen (\"A:\\\\\\abc.txt\C. fopen (\"A:\\abc.txt\ D. fopen (\"A:\\\\\\abc.txt\ word完美格式

得分 评阅人 二、填空题:(共6题,每空2分,共26分)

31、 以下程序是实现在M行N列的二维数组中,找出每一行上的最大值。请将程序补充完整

#define M 3

#define N 4

void main ( )

{

int x[M][N] = {1, 5, 7, 4, 2, 6, 4, 3, 8, 2, 3, 1};

int i, j, p;

for (i = 0; i < M; i++)

{

p = 0;

for (j = 1; j < N; j++)

if (x[i][p] < x[i][j]) (1) ;

printf (\"The max value in line %d is %d\\n\ (2) );

}

}

32、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。

#include

void main ( )

{

int i, j;

for (i = 0; (3) ; i++)

{

j = i * 10 + 6;

if ( (4) ) continue;

printf (\"%d\

}

}

第 3 页(共 6 页)

精心整理 学习帮手

word完美格式

33、下面程序的功能是将键盘输入的字符串str中的所有'c'字符用'C'替换。请将程序补充完整。 #include #include void main ( ) { int i; char str[80]; gets (str); for (i = 0; (5) ; i++) { if (str[i] != 'c') (6) ; str[i] = 'C'; } printf (\"%s\\n\} 34、下面程序的功能是实现数组元素中值的逆转。 #include void invert(int *s,int num); void main() { int i, n=10, a[10]={1,2,3,4,5,6,7,8,9,10}; invert( a, n-1 ); for ( i=0;i<10;i++ ) printf(\"%4d\; printf(\"\\n\"); } void invert(int *s,int num) { int *t, k; t = s+num; while ( (7) ) { k=*s; *s=*t; *t=k; (8) ; (9) ; } } 精心整理 学习帮手

------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 --------------------------------------------------------- word完美格式

35、下面程序的功能是输入学生的姓名和成绩,然后输出。 #include struct stuinf { char name[20]; /* 学生姓名 */ int score; /* 学生成绩 */ } stu, *p; main ( ) { p = &stu; printf( \"Enter name:\" ); gets( (10) ); printf( \"Enter score: \" ); scanf( \"%d\", (11) ); printf( \"Output: %s, %d\\n\",p->name,p->score ); } 36、下面程序的功能是统计文件中的字符的个数。 #include main() { long num=0; (12) *fp; if ( (fp=fopen(\"fname.dat\{ printf(\"Can't open the file! \"); exit(0); } while ( (13) ) { fgetc( fp ); num++; } printf( \"num=%d\\n\; fclose( fp ); } 第 4 页(共 6 页)

精心整理 学习帮手

word完美格式

------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 --------------------------------------------------------- 得分 评阅人 三、阅读题:(共6题,每题4分,共24分) 37、下面程序的输出结果是 (1) 。 void main ( ) { int a, b; for (a = 1, b = 1; a <= 100; a++) { if (b >= 10) break; if (b % 3 == 1) { b += 3; continue; } } printf (\"a=%d\\n\} 38、 以下程序的输出结果是 (2) 。 main() { int a=0,b=1,c=0,d=20; if ( a ) d=d-10; else if ( !b ) if ( !c ) d=15; else d=25; printf( \"d=%d\\n\; } 精心整理 学习帮手

word完美格式

39、 下面程序的输出结果是 (3) 。 main() { int i,j,x=0; for (i=0;i<2;i++) { x++; for ( j=0;j<-3;j++ ) { if ( j%2 ) continue; x++; } x++; } printf( \"x=%d\\n\; } 40、 下面程序的输出结果是 (4) 。 #include main( ) { int n[3][3], i, j; for(i=0;i<3;i++ ) for(j=0;j<3;j++ ) n[i][j] = i+j; for(i=0;i<2;i++ ) for(j=0;j<2;j++ ) n[i+1][j+1] += n[i][j]; printf( \"%d\\n\; } 41、下面程序的输出结果是 (5) 。 void ss (char *s, char t) { while (*s) { if (*s == t) *s = t - 'a' + 'A'; s++; } } void main ( ) { char str1[100] = \"abcddfefdbd\ 第 5 页(共 6 页)

精心整理 学习帮手

word完美格式

------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 --------------------------------------------------------- 42、下面程序的输出结果是 (6) 。 #include \"stdio.h\" struct str1 { char c[5]; char *s; }; main( ) { struct str1 s1[2] = { {\"ABCD\",\"EFGH\,{\"IJK\",\"LMN\; struct str2 { struct str1 sr; int d; } s2 = { \"OPQ\",\"RST\",32767 }; struct str1 *p[2]; p[0]=&s1[0]; p[1]=&s1[1]; printf( \"%s\\n\",++p[1]->s ); printf( \"%c\",s2.sr.c[2] ); } 得分 评阅人 四、编程题:(共2题,每题10分,共20分) 43、编程计算a+aa+aaa+…+aa…a(n个a)的值,n和a的值由键盘输入。 44、 求编写一函数strlshif (char *s, int n),其功能是把字符串s中的所有字符左移n个位置,串中的前n个字符移到最后。 精心整理 学习帮手

word完美格式

第 6 页(共 6 页)

精心整理 学习帮手

word完美格式

答题纸 ------------------------------------------------- 密 ---------------------------------- 封 ----------------------------- 线 --------------------------------------------------------- 一、 单选题 01: 02: 03: 04: 05: 06: 07: 08: 09: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 二、 填空题 31: 空格1: 空格2: 32: 空格3: 空格4: 33: 空格5: 空格6: 34: 空格7: 空格8: 空格9: 35: 空格10: 空格11: 36: 空格12: 空格13: 三、 阅读题 37:结果为: 。 38:结果为: 。 39:结果为: 。 40:结果为: 。 41:结果为: 。 42:结果为: 。 精心整理 学习帮手

word完美格式

四、编程题 43、程序如下: 44、程序如下: 第 1 页(共 1 页)

精心整理 学习帮手

因篇幅问题不能全部显示,请点此查看更多更全内容

Top