c语言期末复习试题_c语言期末复习题库
c语言期末复习试题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言期末复习题库”。
下面程序运行时,如果从键盘上输入3,5,程序输出的结果是(C)。void main(void){ int a,b,*pa,*pb;pa=&a;pb=&b;scanf(“%d,%d”,pa,pb);*pa=a+b;*pb=a+b;printf(“a=%d,b=%dn”,a,b);} A.a=13,b=13 B.a=8,b=8 C.a=8,b=13 D.出错
?设有定义:int n1=0, n2, p=&n2, q=&n1;,以下赋值语句中与n2=n1;语句等价的是(A)。A.*p=*q;//将指针q指向的地址里的值(即n1的值),赋给指针p指向的地址里(n2)B.&q=&p;//p 和 q 分别存放n1、n2变量地址的,该地址是由系统分配的,不能赋值 C.p=&n1;D.p=q;
以下程序的运行结果是:(A)。
void main(void){ struct num { int x;int y;}cnum[2]={1,3,2,6};printf(“%dn”,cnum[0].y/cnum[0].x*cnum[1].y);} A.18 B.12 C.6 D.1
若定义了
struct num { int a;int b;}d[3] ={{1,4},{2,5},{6,7}};则执行printf(“%dn”,d[2].a* d[2].b/d[1].b);语句的输出结果是:(C)。A.2 B.2.5 C.8 D.8.4
有如下定义:
struct date { int year,month,day;};struct person { char name[20];char sex;struct date birthday;} a;对结构体变量a的出生年份赋值时,下面正确的赋值语句是:(C)。
A.a.year=2010;B.birthday.year=2010;C.a.birthday.year=2010;D.year=2010;
若变量x和y均为整型,且x=y=1,则表达式y+=x+1的值为(A)。A.3 B.2 C.1 D.无正确结果
表示关系x
若有输入语句“scanf(”%d,%d,%d“ ,&x,&y,&z);”,欲使x的值为10,y的值为20,z的值为30,则正确的输入应为(C): A.10 , 20 ,30〈回车〉 B.10 20 30〈回车〉 C.10,20,30〈回车〉
D.10〈回车〉20〈回车〉30〈回车〉
x为int型变量,执行以下语句后,x的值为(B)。x=10;x+=x-=x-x;A.10 B.20 C.30 D.40
有以下程序: void main(){ ;
; ; } 程序运行后的结果是(D): A.编译时有警告错误 B.编译时有语法错误
C.编译没有错误,但是运行时出错 D.程序正常运行,但是无任何输出
关于if后面一对圆括号中的表达式,叙述正确的是(D)。A.只能用关系表达式 B.只能用逻辑表达式
C.只能用关系表达式或逻辑表达式 D.可以使用任意合法的表达式
以下不正确的if语句是(D)。A.if(ab)&&(b>c)printf(“max=%d”,a);
feof(fp)函数是用来测试fp所指的文件是否结束,如果文件结束,则feof(fp)返回的值是(B): A.0 B.1 C.NULL D.以上答案都不对
调用fopen函数打开一个文件失败时,函数返回的值是(C): A.-1 B.EOF C.NULL D.1
在对文件进行操作时,读文件的含义是(B): A.将内存中的信息存入磁盘 B.将磁盘中的信息输入到内存 C.将CPU中的信息存入磁盘 D.将磁盘中的信息输入到CPU
以下运算符中,优先级最高的是(B)。A.!B.[ ] C.++ D.%
假设有两个字符数组a[80],b[80],则正确的输出语句是(D)。A.puts(a,b);B.printf(“%s %s”,a[],b[]);C.putchar(a,b);D.puts(a);puts(b);
对定义“int a[2];”的正确描述是(B)。A.定义一维数组a,包含a[1]和a[2]两个元素 B.定义一维数组a,包含a[0]和a[1]两个元素
C.定义一维数组a,包含a[0]、a[1]和a[2]三个元素 D.定义一维数组a,包含a(0)、a(1)和a(2)三个元素
在引用数组元素时,其下标表达式的类型必须是(D)。A.字符型 B.整型
C.整型或字符型
D.整型常量或整型表达式
在C程序中,不合法的浮点型常量是(A): A.3.4E2.5 B..456 C.0.820000 D.100.3e5
C程序中,合法的关键字是(A): A.int B.integer C.Int D.Integer
执行循环语句“for(i=1;i
有以下程序段: int t=0;while(t=1)t--;while循环执行的次数是(C)。A.一次也不执行 B.只执行一次 C.无限次 D.执行2次
C语言中while和do-while循环的主要区别为(A)。A.do-while的循环体至少无条件执行一次
B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句
While 语句中循环结束的条件是while后面表达式的值是(A)。A.0 B.1 C.-1 D.非0
已经有以下函数定义: fun(char a){ printf((“a=%cn”, a);} 该函数的返回值类型是(C)。A.void B.char C.int D.不确定
以下关于函数调用的描述中错误的是(B)。A.实参可以是常量、表达式或有确定值的变量 B.实参和形参共用同一内存单元 C.实参和形参的类型、个数必须一致
D.只有发生函数调用时,系统才为形参分别存储空间
以下叙述中正确的是(A)。
A.在C语言中静态变量在未赋值时,其值为0 B.在C语言中任何变量在未赋值时,其值为0 C.外部变量在程序的任何函数中均有效
D.函数中任何一个局部变量均无法保留上一次调用时的运行结果
以下正确的描述是(B)。
A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D.函数的定义和函数的调用均可以嵌套
下面的程序将浮点数写到文件test中,然后读出并显示。
#include main(){FILE *fp;float f=12.34;if((fp=_fopen(“test”,“wb”))==NULL){printf(”Cannotopen file.“);exit(l);} fwrite(&f,sizeof(float),1,fp);rewind(fp);fread(&f,sizeof(float),1,fp);printf(“%fn”,f);fclose(fp);}
下面的函数sum 完成计算1~n的累加和。
sum(int n)
{ if(n
printf(”data errorn“);
if(n==1)return 1;
else _return(sum(n-1)+n);__________ } 统计学生成绩中不及格的学生名单。#include struct student { long num;char name[20];float score;}stu[6]={{9910110,”wangling”,85},{9910111,”liming”,90.5},{9910112,”fengyong”,90.5},{9910113,”fangjun”,56},{9910114,”sunping”,77.5},{9910115,”kongxiao”,50.5}};main(){ struct student s;int i,count=0;printf(“不及格名单:n”);for(i=0;i
main(){ int i=2;float sum=1;while(i
下面程序输入一个字符串,输出其中所出现过的大写英文字母.如输入字符串
“UKSDYckjsjsjJSJJD”;应输出“UKSDYJ”。按程序功能填空。#include main(){ char a[80], b[26];int i,j,k=0;gets(a);for(i=0;a[i]!=' ';i++)if(a[i]>='A'&&a[i]<='Z'){ for(j=0;j
打开C:CAADATA35中源程序文件pg3101.cpp,该程序是输入一个数x,当x能被5整除时,输出“x能被5整除”的信息,否则输出“x不能被5整除”。检查程序哪里有问题,请修改使之运行能得到正确结果。该源程序内容如下: #include void main(void){ int x,k;printf(”请输入x的值:n“);scanf(”%d“,&x);k=x%5;if(k==0)
printf(”x能被5整除n“);else
printf(”x不能被5整除n“);}
打开C:CAADATA36中的源程序文件pg207.cpp,补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),使得程序运行时完成以下功能:编写程序找出3×3矩阵中的最大元素及其行列位置并输出,请在程序中将二维数组的9个元素初始化为以下值: 8 6 4 2 1 9 7 5 3
打开C:CAADATA37中的源程序文件pg301.cpp,按要求补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),要求为:编写判断一个数是否为素数的函数fun(),并在主函数调用该函数输出200以内的所有素数。
打开C:CAADATA38中源程序文件pg6101.cpp,该程序有小问题,程序结果不正确。请修改,使程序能正确运行。该源程序内容如下: #include void main(void){ int a[5];printf(”请输入5个整数:“);for(i=0;i
scanf(”%d“,&a[i]);printf(”这5个数为:“);for(i=0;i
printf(”%4d“,a[i]);printf(“n”);}
打开C:CAADATA39中源程序文件pg5104.cpp,该程序是打印1到5的阶乘,有个小问题,请修改,使程序能正确运行。该源程序内容如下: #include int fac(int n){ static int f=1;f=f*n;return f;} void main(){ int i;for(i=1;i
printf(”%d!=%dn“,i,fac(i));}
打开C:CAADATA40中源程序文件pg2102.cpp,该程序是从键盘输入两个数,在屏幕上输出这两个数。程序中有几处错误,修改程序,使其能够正确运行。该源程序内容如下: #include void main(){ int x,y;printf(”Please enter x,y: “);scanf(”%d%d“,&x,&y);printf(”x=%d,y=%dn“,x,y);printf(”n");}
打开C:CAADATA41中的源程序文件pg105.cpp,补充程序使得程序运行时完成以下功能:输入x的值,按照函数:
x(x=10)
输出y的值。并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。