《C语言程序设计》19秋期末考核
试卷总分:100 得分:100
第1题,putchar函数可以向终端输出一个:
A、整型变量表达式值
B、实型变量值
C、字符串
D、字符或字符型变量值
正确答案:
第2题,以下对C语言中共用体类型数据的叙述正确的是( )
A、可以对共用体变量名直接赋值
B、一个共用体变量中可以同时存放其所有成员
C、一个共用体变量中不能同时存放其所有成员
D、共用体类型定义中不能出现结构体类型的成员
正确答案:
第3题,在C语言中,char型数据在内存中的存储形式是( )
A、补码
B、反码
C、原码
D、ASCII码
正确答案:
第4题,从用户使用的角度看,函数有两种,它们是( )
A、库函数和用户自定义函数
B、库函数和主函数
C、用户自定义函数和主函数
D、主函数和子函数
正确答案:
第5题,若调用fputc函数输出字符成功,则其返回值是( )
A、EOF
B、1
C、0
D、输出的字符
正确答案:
第6题,变量的指针,其含义是指该变量的( )
A、地址
B、值
C、名字
D、标识
正确答案:
第7题,main() {int x=2,y=-1,z=2; if(xy) if(y0) z=0; else z+=1; printf("%d\n",z); } 以上程序的输出结果为( )。
A、3
B、2
C、1
D、0
正确答案:
第8题,#includestdio.h main() {union { long a; int b; char c;}m; printf("%d\n",sizeof(m));} 以上程序的运行结果是( )。
A、2
B、4
C、6
D、8
正确答案:
第9题,设有以下说明语句 struct stu {int a;float b;}stutype; 则以下叙述不正确的是( )
A、stutype 是用户定义的结构体类型名
B、a 和 b 都是结构体成员名
C、struct 是结构体类型的关键字
D、struct stu 是用户定义的结构体类型
正确答案:
第10题,若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10};则下列哪个是对该数组元素的正确引用( )
A、a[10]
B、a[a[3]-5]
C、a[a[9]]
D、a[a[4]+4]
正确答案:
第11题,以下正确的叙述是( )
A、在C语言中,每行只能写一条语句
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C、在C程序中,无论整数还是实数,都能被准确无误的表示
D、在C程序中,%是只能用于整数运算的运算符
正确答案:
第12题,关于return语句,下列说法正确的是( )。
A、不能在主函数中出现
B、必须在每个函数中出现
C、可以在同一个函数中出现多次
D、只能在除主函数之外的函数中再出现一次
正确答案:
第13题,判断字符串a是否大于b,应当使用( )
A、if (ab)
B、if (strcmp(a,b))
C、if (strcmp(b,a)0)
D、if (strcmp(a,b)0)
正确答案:
第14题,下面程序段 int k=2; while (k==0) {printf("%d",k);k--;} 则下面描述中正确的是()。
A、while 循环执行 10 次
B、循环是无限循环
C、循环体语句一次也不执行
D、循环体语句执行一次
正确答案:
第15题,已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是:
A、整型变量的输出格式符只有%d一种
B、%x 是格式符的一种,它可以适用于任何一种类型的数据
C、%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
D、%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度
正确答案:
第16题,#include "stdio.h" void main() { int sum=0,a=1; while(a=10) {sum=sum+a; a++; } printf("sum=%d\n",sum); } 以上程序段的运行结果是( )
A、sum=0
B、sum=55
C、sum=10
D、sum=11
正确答案:
第17题,若执行fopen函数时发生错误,则函数的返回值是( )
A、地址值
B、null
C、1
D、EOF
正确答案:
第18题,C语言结构体类型变量在程序执行期间( )。
A、所有成员一直驻留在内存中
B、只有一个成员驻留在内存中
C、部分成员驻留在内存中
D、没有成员驻留在内存中
正确答案:
第19题,以下对一维整型数组 a 的正确说明是( )
A、int a(10) ;
B、int n=10,a[n];
C、int n;
D、define SIZE 10 int a[SIZE];
正确答案:
第20题,struct person {char name[9]; int age;}; struct person class[10]={"John",17,"Paul",19,"Mary"18,"adam",16}; 根据上面的定义,能打印出字母M的语句是( )。
A、printf("%c\n",class[3].name);
B、printf("%c\n",class[3].name[1]);
C、printf("%c\n",class[2].name[1]);
D、printf("%c\n",class[2].name[0])
正确答案:
第21题,x=-2; y=-1; if(x!=0) if(x0) y=1; else y=0; 该程序段的输出结果为( )。
A、1
B、0
C、-1
D、不确定
正确答案:
第22题,若以"a+"方式打开一个已存在的文件,则以下叙述正确的是( )。
A、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。
B、文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。
C、文件打开时,原有文件内容被删除,只可作写操作。
D、以上各种说法皆不下确。
正确答案:
第23题,判断字符串a是否大于b,应当使用( )
A、if (ab)
B、if (strcmp(a,b))
C、if (strcmp(b,a)0)
D、if (strcmp(a,b)0)
正确答案:
第24题,main() { int x,y,z; scanf ("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z); } 输入数据的形式是25,13,10回车,则程序的输出结果是( )
A、x+y+z=48
B、x+y+z=35
C、x+z=35
D、不确定值
正确答案:
第25题,for (i=2; i==0; ) printf("%d" , i--) ; 以上程序段的循环次数是( )
A、2次
B、无限次
C、0次
D、1 次
正确答案:
第26题,被main函数调用的函数只能是库函数。( )
A、错误
B、正确
正确答案:
第27题,字符常数和字符串常数的存储是相同的,都是以字符的ASCII码值进行存放。( )
A、错误
B、正确
正确答案:
第28题,按现代风格设计的C程序中,main中对函数声明的信息与定义此函数时第一行的信息完全相同。( )
A、错误
B、正确
正确答案:
第29题,在Visual C中,整型数据在内存中占2个字节。( )
A、错误
B、正确
正确答案:
第30题,C语言采用解释方式将源程序转换为二进制的目标代码。( )
A、错误
B、正确
正确答案:
第31题,C语言中没有依存于硬件的I/O语句。( )
A、错误
B、正确
正确答案:
第32题,C语言中的任何类型数据都可进行四则运算。( )
A、错误
B、正确
正确答案:
第33题,C语言中的标识符以字母或下划线开头,可跟任何字符。( )
A、错误
B、正确
正确答案:
第34题,在Turbo C++中,字符型数据在内存中占1个字节。( )
A、错误
B、正确
正确答案:
第35题,PI可作为标识符使用。( )
A、错误
B、正确
正确答案:
第36题,下面函数的功能是将字符变量的值插入已经按ASCII码值从小到大排好序的字符串中。请完善该程序。 void fun(char *w,char x,int *n){ int i,p=0; while(xw[p]) ##; for(i=*n;i=p;i--) ##; w[p]=x; ##;}
正确答案:
第37题,以下程序是计算学生的年龄。已知第一位最小的学生年龄为10岁,其余学生的年龄一个比一个大2岁,求第5个学生的年龄。请完善该程序。#include stdio.hage( int n ){ int c; if(##) c=10; else c=##; return(c);}main(){ int n=5; printf("age:%d\n",##);}
正确答案:
第38题,请写出下面程序的输出结果。#include stdio.hfun(int n, int *s){ int f1, f2; if(n==1||n==2) *s=1; else { fun(n-1, &f1); fun(n-2, &f2); *s=f1+f2; }}main(){ int x; fun(6, &x); printf("%d\n", x);}
正确答案:
第39题,请写出下面程序的输出结果。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=%d\n",x);}
正确答案:
第40题,请写出下面程序的输出结果。#include stdio.hmain ( ){ int a[]={1, 2, 3, 4, 5} ; int x, y, *p; p=&a[0]; x=*(p+2); y=*(p+4); printf("%d,%d,%d\n", *p, x, y);}
正确答案:
第41题,请写出下面程序的输出结果。#include stdio.hchar *pp[2][3]={ "abc", "defgh", "ijkl", "mnopqr", "stuvw", "xyz"};main ( ){ printf("%c\n",***(pp+1)); printf("%c\n",**pp[0]); printf("%c\n",(*(*(pp+1)+1))[4]); printf("%c\n",*(pp[1][2]+2)); printf("%s\n",**(pp+1));}
正确答案: