1、第一部分 试卷描述 =C 语言期末考试试卷 A =0 =0 题目描述 考试说明: 一、本试卷由两大部分组成:选择题( 70 分)和编程题( 30 分) 二、选择题为单项选择,即只有一个选项是正确的,直接利用本软件 答题。答题方法和要求是:将你认为正确的答案填入对应的答题区域内(按 对应的字母键);要结束选择题的考试请按 ESC 键,然后在对话框中选“是” 按钮 三、编程题请在结束选择题考试后作答,答题方法和要求是:按以上 方法结束选择题的考试后,打开 考试盘 (网络盘 K: )“考生文件夹”中文件 名为“编程题”的文件 (双击即可 ),然后按此文件内容提供的信息和要求 答题 一、选择题(每题
2、2 分, 35 题,共 70 分) 1、一个 C 语言程序是由 ( 1 ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 =b 题目描述 2、下面不属于结构化程序设计的三种基本结构的是 ( 2 ) A、顺序 B、跳转 C、循环 D、选择 =b 题目描述 3、下面四个选项中,均是不合法的用户标识符的选项是 ( 3 ) 。 A、 b-a B、 Float C、 a2 D、 _123 goto P_0 int temp int char 2b double =a 题目描述 4、若有代数式 (3ae)/bc,则不正确的 C 语言表达式是 ( 4 )。 A、 a/b
3、/c*e*3 B、 3*a*e/b/c C、 a*e/c/b*3 D、 a*e/c/b*3 =b 题目描述 5、表达式 21/4*sqrt(9.0)/4 值的数据类型是 ( 5 )。 A、 float B、 int C、不确定 D、 double =d 题目描述 6、若希望当字符变量 a 中为数字字符时,表达式的值为 “真 “,为 非数字字符时,表达式的值为 “假 “。则以下不能满足要求的表 达式是 ( 6 )。 A、 a=0 printf(“%dn“, (a+=a-=a*a); A、 0 B、 -112 C、 -180 D、 -48 =b 题目描述 8、一个 C 语言的语句至少应包一个 (
4、8 )。 A、 B、逗号 C、分号 D、什么不要 =c 题目描述 9、程序中定义以下宏 #define S(a,b) a*b 若定义 int area;且令 area=S(3+4,5+1),则变量 area 的 值为 ( 9 ) 。 A、 42 ? B、 24 C、 25 D、 23 =b 题目描述 10、在 C 语言中 ,函数的隐含存储类别是 ( 10 )。 A、 auto B、 static C、 extern D、无存储类别 =c 题目描述 11、有如下程序 main() int i,sum; for(i=1;i=c 题目描述 12、为了避免嵌套的 if-else 语句的二义性, C 语
5、言规定 else 总是与 ( 12 )组成配对关系。 A、缩排位置相同的 if B、在其之前未配对的 if C、在其之前未配对的最近的 if D、同一行上的 if =c 题目描述 13、有以下程序,程序运行后的输出结果是 ( 13 )。 main() int a=15, b=21, m=0; switch (a%3) case 0: m+; break; case 1: m+; switch (b%2) default: m+; case 0: m+; break; printf(”%dn”,m); A、 1 B、 2 C、 3 D、 4 =a 题目描述 14、有以下程序 main( ) in
6、t i,n=0; for(i=2;i=d 题目描述 15、假定有以 下变量定义 int k=7, x=12; 则能使值为 7 的表达式是 ( 15 )。 A、 x%k B、 k%x C、 k/x D、 3%k =b 题目描述 16、以下对 C 语言函数的有关描述中,正确的是 ( 16 )。 A、调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、 C 函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、 C 程序中有调用关系的所有函数必须放 在同一个源程 序文件中 =a 题目描述 17、有如下函数调用语句 func(rec1,rec2+rec3,(rec
7、4,rec5); 该函数调用语句中,含有的实参个数是 ( 17 )。记 A、 4 B、 3 C、 5 D、有语法错 =b 题目描述 18、合法的数组定义是 ( 18 )。 A、 char a=O, K, !; B、 char a3=“O“, “K“, “!“; C、 char a4=O,K,!; D、 char a3=“OK!“; =c 题目描述 19、 以下程序运行后,输出结果是 ( 19 )。 main() int a10, a1 =1,3,6,9,10; int a2 =2,4,7,8,15,i=0,j=0,k; for(k=0;k=a 描述 ? 20、若有以下定义和语句 : char
8、*s1=“12345“,*s2=“1234“; printf(“%dn“,strlen(strcpy(s1,s2); 则输出结果是 ( 20 ) A、 4 B、 5 C、 9 D、 10 =a 题目描述 21、若有以下数组定义,其中不正确的是 ( 21 ) 。 A、 int a23; B、 int b3=0,1,2,3; C、 int c100100=0; X D、 int d3=1,2,1,2,3,1,2,3,4; =d 题目描述 22、以下程序输出的结果是 ( 22 )。 main( ) char w10=“ABCD“,“EFGH“,“IJKL“,“MNOP“, k; for (k=0;k
9、=a 题目描述 23、以下程序的输出结果是 ( 23 )。 main() int i; for (i=1;i=d 题目描述 24、若有说明语句: int a, b, c, *d=, 则能正确从键盘读入三个整数 分别赋给变量 a、 b、 c 的语句是 ( 24 )。 A、 scanf(“%d%d%d“, B、 scanf(“%d%d%d“, C、 scanf(“%d%d%d“,a,b,d); D、 scanf(“%d%d%d“,a,b,*d); =b 题目描述 25、若定义: int a=511, *b= int c, i; scanf(“%c“, scanf(“%d“, scanf(“%s“,
10、s); printf(“%c,%d,%sn“,c,i,s); =d 题目描述 27、若有数组定义 : char array =“China“; 则数组 还有一个” 0” array所占的空间为 ( 27 )。 A、 4 个字节 B、 5 个字节 C、 6 个字节 D、 7 个字节 =c 题目描述 28、若有以下的定义 : int a =1,2,3,4,5,6,7,88,9,10, *p=a;p 代表 a 的地址, 则值为 3 的表式是 ( 28 ) A) p+=2, *(p+) B) p+=2,*+p C) p+=3, *p+ D) p+=2,+*p =a 题目描述 29、以下程序运行后的输出
11、结果是 ( 29 )。 func(int a) auto int b=0; auto int c=1; b+; c+; return (a+b+c); main( ) int x=2, i; for(i=0; i=d 题目描述 30、若已定义 : int a=0,2,4,6,8,10,12,14,16,18,*p=a, i; (i在 0 至 9 的范围 ),以下对 a 数组元素的引用不正确 的是 ( 30 ) A、 ap-a ? B、 *( int a5=2, 6, 8, 7, 1; p=a; printf(“%d %d %dn“, ap-a, *p+, *+p); A、 8 6 6 B、 2
12、 2 8 C、 2 6 8 D、 6 8 6 =a 题目描述 32、下面程序的功能是计算正整数 2345 的各位数字平方和, 请选择填空。 填第一空 (32 ): #include main() int n, sum=0; n=2345; do sum=sum+( 32 ); n=( 33 ); while(n); printf(“sum=%d“,sum); A、 n%10 B、 (n%10)*(n%10) C、 n/10 D、 (n/10)*(n/10) =b 题目描述 33、下面程序的功能是计算正整数 2345 的各位数字平方和, 请选择填空。 填第二空 ( 33 ): #include
13、main() int n, sum=0; n=2345; do sum=sum+( 32 ); n=( 33 ); while(n); printf(“sum=%d“,sum); A、 n/1000 B、 n/100 C、 n/10 D、 n%10 =c 题目描述 ? 34 下面程序的功能是求出用数字 1、 3、 5、 7 可以组成多少个 没有重复的三位数,且每行控制输出 4 个数。请选择填空。 填第一空 ( 34 ): main() int i, j, k, count=0; for(i=1; i=b 题目描述 35、下面程序的功能是求出用数字 1、 3、 5、 7 可以组成多少个 没有重复
14、的三位数,且每行控制输出 4 个数。请选择填空。 填第二空 ( 35 ): main() int i, j, k, count=0; for(i=1; i=c 选择题: 1、下面不属于结构化程序设计的三种基本结构的是 _ 。 A、顺序结 构 B、跳转结构 C、循环结构 D、选择结构 =b 题目描述 2、下列各组字符序列中,可用作 C 语言程序标识符的是 _。下划线 unsigned long w=10; double x=3.14159, y=0.12; 则以下符合 C 语言语法 的表达式是 _。 A a+=a-=(b=2)*(a=8) B n=n*3=18 C x%3 D y=float (
15、m) =a 题目描述 6、假设所有变量均为整型,则表达式 (x=2, y=5, y+, x+y)的 在计算 x+y之前,y已经自家一了 值是 _。 A 2 B 6 C 7 D 8 =d 题目描述 7、设 x、 y均为整型变量,且 x=10,y=3,则以下语句的输出结果是 _。 printf(%d,%dn“,x-,-y); A、 10,3 B、 10,2 C、 9,2 D、 9,3 =b 题目描述 8、以下程序段的输出结果是 _。 float a=12345.98; printf(“%5.2fn“,a); A、 12345.98 B、 12345 C、 45.98 D、提示出错、无结果 =a 题
16、目描述 9、 putchar 函数可以向终端输出一个 _。 A整型变量表达式值 B字符串 C字符或字符型变量值 D实型变量值 =c 题目描述 10、有如下程序段,从键盘输入数据的正确形式应是 _。 (注:代表空格) float x,y,z; scanf(“x=%d,y=%d,z=%d”, A 123 B x=1,y=2,z=3 C 1,2,3 D x=1 y=2 z=3 =b 题目描述 11、在 C 语言中, if(a)语句 ,当 a 的值为 _ 时 不执行 if 后面的语句。 A、 -1 B、 0.1 C、 1 D、 0 =d 题目描述 12、已知: char ch=q;则下列表达式的值是 _ 下式是对的 ,故选左边的 ch = (ch=a b=+a;b+=a; printf(“ %d“,b);