《C语言学习知识程序设计试卷.(A卷).doc》由会员分享,可在线阅读,更多相关《C语言学习知识程序设计试卷.(A卷).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计期末考试试卷(A卷)课程名称 C语言程序设计 课程编号 84810005 任课教师 题型单选题填空题阅读题编程题总分分值30262420100得分得分评阅人一、单选题:(共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. 若干过程组成 D. 若干子程序组成4、下面四个选项中
2、,均是不合法的用户标识符的选项是( )。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院(系): 专业: 年级: 学生姓名: 学号: - 密 - 封 - 线 -7、若有定义: in
3、t 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, &a, &b); B. scanf (%3d%*3c%3d, &a, &b);C. scanf (%3d%3d%*3d, &a, &b); D. scanf (%3d%*2d%3d, &a, &b);9、对
4、于条件表达式(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, break; C. switch a D. switch (a -
5、 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 (%dn, y-); A. -1 B. 1 C. 8 D. 012、 下面程序段的运行结果是( )。x =
6、 y = 0;while (x 15) y+, x += +y;printf (%d, %d, y, x);A. 20, 7 B. 6, 12 C. 20, 8 D. 8, 20 第 1 页(共 6 页)13、以下程序中,while循环的循环次数是( )。int i = 0;while (i 10)if (i 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;print
7、f (%dn, a.u.x);A. 4 B. 5 C. 6 D. 025、有定义如下:struct sk int a;float b; data ,*p;如果 p = &data;则对于结构变量data的成员a的正确引用是 (25) 。A)(*).data.a B) (*p).a C) p-data.a D) p.data.a 第 2 页(共 6 页)27、 函数 rewind 的作用是( )。A. 使位置指针重新返回文件的开头B. 将位置指针指向文件中所要求的特定位置C. 使位置指针指向文件的末尾D. 使位置指针自动移至下一个字符位置28、 函数调用语句:fseek(fp, -20L, 2)
8、;的含义是( )。A. 将文件位置指针移到距离文件头20个字节处 B. 将文件位置指针从当前位置向后移动20个字节C. 将文件位置指针从文件末尾处退后20个字节D. 将文件位置指针移到离当前位置20个字节处29、 设有以下结构体类型:struct st char name8; int num; float s4; student50;并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下不正确的形式是( )。A. fwrite (student, sizeof(struct st), 50, fp);B. fwrite (student, 50*sizeof(st
9、ruct 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:userabc.txt, r) B. fopen (A:userabc.txt, r+)C. fopen (A:userabc.txt, rb) D. fopen (A:userabc.
10、txt, w) - 密 - 封 - 线 -得分评阅人二、填空题:(共6题,每空2分,共26分) 31、以下程序是实现在M行N列的二维数组中,找出每一行上的最大值。请将程序补充完整#define M 3#define N 4void main ( ) int xMN = 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 (xip xij) (1) ;printf (The max value in line %d is %dn, i, (2) );32、下
11、面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。#include void main ( )int i, j;for (i = 0; (3) ; i+)j = i * 10 + 6;if ( (4) ) continue;printf (%d, j); 第 3 页(共 6 页) 33、下面程序的功能是将键盘输入的字符串str中的所有c字符用C替换。请将程序补充完整。#include #include void main ( ) int i;char str80;gets (str);for (i = 0; (5) ; i+) if (stri != c) (6) ; s
12、tri = C;printf (%sn, str);34、下面程序的功能是实现数组元素中值的逆转。#include void invert(int *s,int num);void main() int i, n=10, a10=1,2,3,4,5,6,7,8,9,10;invert( a, n-1 );for ( i=0;i10;i+ ) printf(%4d,ai);printf(n);void invert(int *s,int num) int *t, k;t = s+num;while ( (7) ) k=*s; *s=*t; *t=k; (8) ; (9) ; - 密 - 封 -
13、线 -35、下面程序的功能是输入学生的姓名和成绩,然后输出。#include struct stuinf char name20; /* 学生姓名 */int score; /* 学生成绩 */ stu, *p;main ( ) p = &stu;printf( Enter name: );gets( (10) );printf( Enter score: );scanf( %d, (11) );printf( Output: %s, %dn,p-name,p-score );36、下面程序的功能是统计文件中的字符的个数。#include main() long num=0; (12) *fp
14、;if ( (fp=fopen(fname.dat, r)=NULL ) printf(Cant open the file! );exit(0);while ( (13) ) fgetc( fp ); num+;printf( num=%dn, num );fclose( fp ); 第 4 页(共 6 页)得分评阅人三、阅读题:(共6题,每题4分,共24分) 37、下面程序的输出结果是 (1) 。void main ( )int a, b;for (a = 1, b = 1; a = 10) break;if (b % 3 = 1) b += 3; continue; printf (a=
15、%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;else d=25;printf( d=%dn, d ); - 密 - 封 - 线 -39、下面程序的输出结果是 (3) 。main() int i,j,x=0;for (i=0;i2;i+) x+;for ( j=0;j-3;j+ ) if ( j%2 ) continue;x+;x+;printf( x=%dn, x );40、下面程序的输出结果是 (4) 。#include main( )
16、 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;js ); printf( %c,s2.sr.c2 ); 得分评阅人四、编程题:(共2题,每题10分,共20分) 43、编程计算a+aa+aaa+aaa(n个a)的值,n和a的值由键盘输入。44、求编写一函数strlshif (char *s, int n),其功能是把字符串s中的所有字符左移n个位置,串中的前n个字符移到最后。 - 密 - 封 - 线 - 第 6 页(共 6 页)答题纸一、 单选题01: 02: 03: 04: 05: 0
17、6: 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:结果为: 。 - 密 - 封 - 线 -四、编程题43、程序如下: 44、程序如下: 第 1 页(共 1 页)