1、
C言语次序计划期末测验温习题及谜底
.txt爱空空情空空,本人漂泊在街中;人空空钞票空空,
独身薄命在打工;事空空业空空,想来想去就发狂;碗空空盆空空,生涯所迫不轻松。总之,
四年夜皆空!C言语测验期末测验温习题及谜底
一、选择题
(1)一个C言语次序老是从〔C
A)誊写次序的第一个函数
B)誊写次序的第一条履行语句
C)主函数main〔〕
D)不断定
〕开场履行
(2)设intx=3,y=4,z=5,那么以下表白式中的值为
0的是(D)
A)‘x’&&’y’
B)x||y+z&&y-zC)x<=y
D)!((x 2、i的值是(C)
inti=10;
switch(i+1)
{case10:i++;break;
case11:++i;
case12:++i;break;
default:i=i+1;
}
A)11
B)13
中的前提!e等价于(A)
C)e!=0
C)12
D)14
(4)语句while(!e);
A)e==0
B)e!=1
D)运转时犯错
a[3]的值是(B)
D)F
“china\0〞;strlen〔str〕的后果是(A)
D)7D9
(7)假定有界说,char*p=〞computer〞;那么语句printf(“%c〞,*(p+2))运转后果 3、是(B)
A)随机值B)mD)omputer
(5)用inta[4]={1,2};
A)随机值
对数组进展初始化后,数组元素
B)0
C)1
(6)在履行charstr[10]=
A)5
B)6
C)o
(8)在以下函数挪用语句中
fun1(x,10,(x,10),fun2(y,10,(y,10)));
函数fun1参数的个数为(B)
A)8
B)4
C)5
(9)
D)
编译犯错
在阐明一个构造体变量时零碎调配给它的存储空间是〔
D
〕
A〕该构造体中第一个成员变量所需存储空间
B)该构造体中最初一个成员变量所需存储
空间
C〕该构造体中占 4、用最年夜存储空间的成员变量所需存储空间
D)该构造体中所有成员变量所需
存储空间的总跟
1.用C言语编写的代码次序(B)
A)可破刻履行B)是一个源次序C)经过编译即可履行
2.C言语顶用于构造化次序计划的三种根本构造是
D)经过编译说明才干履行
(A)
A〕次序构造、选择构造、轮回构造
B〕if、switch、breakC〕for、while、do-while
D〕if、for、continue
3.以下界说语句中准确的选项是(C)
A)chara='A'b='B';floata=b=10.0;C)inta=10,*b=&a;
D)float*a,b=&a 5、
4.以下选项中,不克不及用作标识符的是
A)_1234_B)_1_2C)int_2_D)2_int_
5.在函数挪用进程中,假如函数funA挪用了函数funB,函数funB又挪用了函数funA,那么
(D
〕
〔B
〕
A)称为函数的直截了当递归挪用
C)称为函数的轮回挪用
B)
称为函数的直接递归挪用
D)C
言语中不同意如此的递归挪用
6.以下表白中准确的选项是(A)
A)部分变量阐明为static存储类,其生涯期将失掉延伸
B)全局变量阐明为static存储类,其感化域将被扩展
C)任何存储类的变量在未赋初值时,其值基本上不断定的
D)形参能够运用 6、的存储类阐明符与部分变量完整一样
7.假定变量已正断界说,请求次序段实现求
5!的盘算,不克不及实现此操纵的次序段是
(B)
A)for(i=1,p=1;i<=5;i++)p*=i;B)for(i=1;i<=5;i++){p=1;p*=i;}
C)i=1;p=1;while(i<=5){p*=i;i++;}D)i=1;p=1;do{p*=i;i++;}while(i<=5);
8.有以下次序(a)
main()
{chara='a',b;
printf("%c,",++a);
printf("%c\n",b=a++);}
次序运转后的输入后果是
9.有以下函数界说:(c 7、)
voidfun(intn,doublex){
a)b,b
B)b,c
C)a,b
D)a,c
⋯⋯}
假定以下选项中的变量都已正断界说并赋值,那么对函数
fun的准确挪用语句是
A〕fun(inty,doublem);B
〕k=fun(10,12.5)C
〕fun(x,n);D
〕voidfun(n,x)
10.已界说c为字符型变量,那么以下语句中准确的选项是
(c)
A〕c='97';B
〕c="97";
C
〕c=97;
D
〕c="a";
11.以下能正断界说一维数组的选项是
(b)
A〕intnum[];B
〕#defineN100C 8、〕intnum[0..100];D
〕intN=100;
intnum[N];
intnum[N];
12.以下能正断界说数组并准确赋初值的语句是
(d)
A〕intN=5,b[N][N];B
intd[3][2]={{1,2},{34}};
13.有以下次序(a)
main()
〕inta[1][2]={{1},{3}};C
〕intc[2][]={{1,2},{3,4}};D
〕
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:printf("%d",i);
case2:printf("%d",i);
default:p 9、rintf("%d",i);}
}
履行后输入后果是
A〕011122
B
〕012
C
〕012020
D
〕120
14.有以下次序(d)
main()
{intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<7&&p[i]%2){k=k+p[i];i++;}
printf("%d\n",k);
}
履行后输入后果是
A〕58
B
〕56
C
〕45
D
〕24
15.以下表白中准确的选项是(c)
A〕C言语比其余言语初级
B〕C言语能够不必编译就能被盘算机识不履行
C〕C言语以濒临英 10、语国度的天然言语跟数学言语作为言语的表白方式
D〕C言语呈现的最晚,存在其余言语的所有长处
16.以下表白中准确的选项是(d)
A〕C言语中既有逻辑范例也有聚集范例
C〕C言语中有逻辑范例但不聚集范例
17.以下表白中准确的选项是(a)
B〕C言语中不逻辑范例但有聚集范例
D〕C言语中既不逻辑范例也不聚集范例
A〕C次序中正文部分能够出如今次序中恣意适宜的地点
B〕花括号"{"跟"}"只能作为函数体
的定界符
C〕形成C次序的根本单元是函数,所有函数名都能够由用户定名
D〕分号是C语句之间的分
隔符,不是语句的一部分
二〕浏览次序,写出次序运转后果
(1)#inc 11、lude 12、[i]!=
if(str[i]>=
}
’\0’;i++)
’0’&&str[i]<=
’9’)printf(
“%c〞,str[i]);
次序的运转后果是:
(4)main()
{inta,b;
a=5;
b=8;
p(a,b);
p(a+b,a);
}
p(intx,inty)
{
y=x+y;
printf(
“%d%d〞,x,y);
}
次序的运转后果是:
(5)#include 13、<=2;j++)
s=s*a[j][j];
printf("%d",s);
}
次序的运转后果是:
Key:(1)a
(2)0
(3)123
(4)5131318
(5)45
三〕改错题〔每个次序只要一个过错,填入过错语句地点的行号以及修正后的语句〕
(1)下段次序的功用是先输入一个整数,而后将输入的整数输入。
1main()
2{intx;
3scanf(“%d〞,x);
4printf(
“x=%d\n〞,x);}
行号:
改为:
(2)下段次序的功用是求1+2+3+4+⋯⋯+99+100的跟。
1main()
2{intj=1,sum=0;
3 14、while(j<=100)
4sum=sum+j;
j++;
5printf(
“%d〞,sum);
}
行号:
改为:
(3)下段次序的功用是当输入
1main()
x的值为90时,输入“right〞,否那么输入“error〞。
2{intx;
3if(x=90)printf(
“right〞);
“error〞);
4
}
elseprintf(
行号:
改为:
(4)上面次序的功用是输入字符串
S
1main()
2{chars[]=
3printf(
}
〞china〞;
“s=%s\n〞,s[]);
行号:
改为:
15、
(5)上面次序的功用是依照上面的格局输入
a跟b的值,盘算y=a2+b2并输入。
输入:32
输入:y=13
1main()
2{inta,b;
3inty;
4scanf(
“a=%d,b=%d〞,&a,&b);
5y=a*a+b*b;
6printf(
7}
“y=%d\n〞,y);
行号:
改为:
Key:〔1〕行号:3改为:scanf(“%d〞,&x);
〔2〕行号:4改为:{sum=sum+j;j++;};
〔3〕行号:3改为:if(x==90)printf(“right〞);〔4〕行号:3改为:printf(“s=%s\n〞,s);
〔5〕行号 16、4改为:scanf(“%d%d〞,&a,&b);
二、填空题
1.以下次序输入3个整数值给a,b,c,变量b中的值给a,变量c中的值给b,变量a中的
值给c,交流后输入a,b,c的值。
#include 17、数。
#include 18、nt++;
sum+=___③___;
}
}
printf("sum=%d,count=%d\n",__
④___,__⑤_____);
}
4.以下次序的功用是挪用函数
intfun(intn)
fun盘算:m=1+2+3+4+⋯+9+10,并输入后果。请填空。
{intm=0,i;
for(i=___①___;i<=n;__②____)
{
m=___③____;
}
return_④____;
}
main()
{printf("m=%d\n",__
⑤____);}
5.以下次序将数组中的数据按逆序寄存。
#include 19、
#defineSIZE12
main()
{inta[SIZE],i,j,t;
for(i=0;i 20、
_i__>0____④_i%17==0_⑤__i__
①a[i]_
②i<20__
③__i__
④__sum__⑤count_①_1__②_i++_③_m_+i_
②_SIZE_③a[i]=a[j]④a[j]=t⑤j_--
④
_m__
⑤_fun(10)_①_a[i]
三、次序计划标题
1.编写次序,打印以下列图案
*
**
***
****
*****
2.某数列前两项分不为1跟2,厥后每项为前两项之跟,求此数列的第
10个数。
3.一个8层的灯塔,每一层的灯数是上一层的
2倍,一共有765盏灯,求灯塔底层的灯数。
(1)从键盘输入一 21、个华氏温度,请求输入摄氏温度,公式为
C=5*〔F-32〕/9
(2)编写一个函数求y=(a-b)×(a+b),主函数用以输入a,b的值跟输入y值。
(3)编一次序:从键盘输入
10个整数,盘算并输入这10个数的均匀数。
(4)经过键盘输入3*4矩阵,编写一个函数求所有元素中的最年夜值,此中主函数实现
3*4矩
阵的输入跟最年夜元素的输入。
Key:
3.
〔1〕main()
{floatc,f;
scanf(
“%f〞,&f);
c=5.0*(f-32)/9;
printf(
“c=%f〞,c);
}
〔2〕intf(inta,intb)
{return 22、a-b)*(a+b);}
main()
{inta,b;
scanf(
printf(
“%d,%d〞,&a,&b);
“y=%d〞,f(a,b));
}
〔3〕main()
{inta[10],j;
floatave=0;
for(j=0;j<10;j++)
{scanf(“%d〞,&a[j]);
ave=ave+a[j];
}
printf(
“ave=%f〞,ave/10);
}
〔4〕
#include






