c语言期末复习试题.docx
- 文档编号:29366167
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:15
- 大小:19.27KB
c语言期末复习试题.docx
《c语言期末复习试题.docx》由会员分享,可在线阅读,更多相关《c语言期末复习试题.docx(15页珍藏版)》请在冰豆网上搜索。
c语言期末复习试题
下面程序运行时,如果从键盘上输入3,5<回车>,程序输出的结果是(C)。
voidmain(void)
{inta,b,*pa,*pb;
pa=&a;pb=&b;
scanf("%d,%d",pa,pb);
*pa=a+b;
*pb=a+b;
printf("a=%d,b=%d\n",a,b);
}
A.a=13,b=13
B.a=8,b=8
C.a=8,b=13
D.出错
?
设有定义:
intn1=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)。
voidmain(void)
{
structnum
{
intx;
inty;
}cnum[2]={1,3,2,6};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].y);
}
A.18
B.12
C.6
D.1
若定义了
structnum
{
inta;intb;
}d[3]={{1,4},{2,5},{6,7}};
则执行printf("%d\n",d[2].a*d[2].b/d[1].b);语句的输出结果是:
(C)。
A.2
B.2.5
C.8
D.8.4
有如下定义:
structdate
{
intyear,month,day;
};
structperson
{
charname[20];
charsex;
structdatebirthday;
}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<=y<=z的c语言表达式为(C)。
A.(X<=Y<=Z)
B.(X<=Y)AND(Y<=Z)
C.(X<=Y)&&(Y<=Z)
D.(X<=Y)&(Y<=Z)
若有输入语句"scanf("%d,%d,%d",&x,&y,&z);",欲使x的值为10,y的值为20,z的值为30,则正确的输入应为(C):
A.10,20,30〈回车〉
B.102030〈回车〉
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
有以下程序:
voidmain()
{;
;;
}
程序运行后的结果是(D):
A.编译时有警告错误
B.编译时有语法错误
C.编译没有错误,但是运行时出错
D.程序正常运行,但是无任何输出
关于if后面一对圆括号中的表达式,叙述正确的是(D)。
A.只能用关系表达式
B.只能用逻辑表达式
C.只能用关系表达式或逻辑表达式
D.可以使用任意合法的表达式
以下不正确的if语句是(D)。
A.if(a
B.if(a!
=b&&b);
C.if(a=b)printf("equal");
D.if(a>b)&&(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);
对定义"inta[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<10;i++)a++;"后,变量i的值是(B)。
A.9
B.10
C.11
D.不确定
有以下程序段:
intt=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(chara)
{printf((“a=%c\n”,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;
floatf=12.34;
if((fp=_fopen(“test”,“wb”))==NULL)
{printf("Cannotopenfile.");exit(l);}
fwrite(&f,sizeof(float),1,fp);
rewind(fp);
fread(&f,sizeof(float),1,fp);
printf(“%f\n”,f);
fclose(fp);
}
下面的函数sum完成计算1~n的累加和。
sum(intn)
{if(n<=0)
printf("dataerror\n");
if(n==1)return1;
else_return(sum(n-1)+n);__________
}
统计学生成绩中不及格的学生名单。
#include
structstudent
{
longnum;
charname[20];
floatscore;
}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()
{structstudents;
inti,count=0;
printf(“不及格名单:
\n”);
for(i=0;i<6;i++)
if(__stu[i].score______<60)
{count++;
printf(“%ld:
%-12s%.1f\n”,stu[i].num,stu[i].name,stu[i].score);
}
printf(“不及格人数:
%d\n”,count);
}
下面程序是实现1+1/2+1/4+1/6+…+1/50的值,请填空:
main()
{inti=2;
floatsum=1;
while(i<=50)
{
sum=sum+1/(float)i;
i++;i++_;
}
printf(“sum=%f\n”,sum)
}
下面程序输入一个字符串,输出其中所出现过的大写英文字母.如输入字符串“UKSDYckjsjsjJSJJD”;应输出“UKSDYJ”。
按程序功能填空。
#include
main()
{chara[80],b[26];
inti,j,k=0;
gets(a);
for(i=0;a[i]!
='\0';i++)
if(a[i]>='A'&&a[i]<='Z')
{for(j=0;j if(b[j]==a[i])break; if(j==k) {b[k]=a[i];k++;} } b[k]='\0'; for(i=0;b[i]! ='\0';i++) printf("%c",b[i]); printf("\n"); } 打开C: \CAADATA\35中源程序文件pg3101.cpp,该程序是输入一个数x,当x能被5整除时,输出“x能被5整除”的信息,否则输出“x不能被5整除”。 检查程序哪里有问题,请修改使之运行能得到正确结果。 该源程序内容如下: #include voidmain(void) { intx,k; printf("请输入x的值: \n"); scanf("%d",&x); k=x%5; if(k==0) printf("x能被5整除\n"); else printf("x不能被5整除\n"); } 打开C: \CAADATA\36中的源程序文件pg207.cpp,补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),使得程序运行时完成以下功能: 编写程序找出3×3矩阵中的最大元素及其行列位置并输出,请在程序中将二维数组的9个元素初始化为以下值: 864 219 753 打开C: \CAADATA\37中的源程序文件pg301.cpp,按要求补充程序并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分),要求为: 编写判断一个数是否为素数的函数fun(),并在主函数调用该函数输出200以内的所有素数。 打开C: \CAADATA\38中源程序文件pg6101.cpp,该程序有小问题,程序结果不正确。 请修改,使程序能正确运行。 该源程序内容如下: #include voidmain(void) { inta[5]; printf("请输入5个整数: "); for(i=0;i<5;i++) scanf("%d",&a[i]); printf("这5个数为: "); for(i=0;i<5;i++) printf("%4d",a[i]); printf(“\n”); } 打开C: \CAADATA\39中源程序文件pg5104.cpp,该程序是打印1到5的阶乘,有个小问题,请修改,使程序能正确运行。 该源程序内容如下: #include intfac(intn) { staticintf=1; f=f*n; returnf; } voidmain() { inti; for(i=1;i<=5;i++) printf("%d! =%d\n",i,fac(i)); } 打开C: \CAADATA\40中源程序文件pg2102.cpp,该程序是从键盘输入两个数,在屏幕上输出这两个数。 程序中有几处错误,修改程序,使其能够正确运行。 该源程序内容如下: #include voidmain() { intx,y; printf("Pleaseenterx,y: "); scanf("%d%d",&x,&y); printf("x=%d,y=%d\n",x,y); printf("\n"); } 打开C: \CAADATA\41中的源程序文件pg105.cpp,补充程序使得程序运行时完成以下功能: 输入x的值,按照函数: x(x<1) y=2x+7(1<=x<10) 3x-5(x>=10) 输出y的值。 并以原文件名保存(不得删除原文件中的注释内容,否则该题不计分)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)