一、选择题(备选答案中只有一个答案是正确的,请把你认为正确答案填入相应的表格内。) |
A. 过程 B. 跳跃 C. 选择 D. 中断
2. 表达式“0!=0”的逻辑值是( )。
A.真 B.假 C.0 D.1
3.下面几种说法中哪个是正确的?( )。
A. else语句需与它前面的if语句配对使用;
B. else语句需与前面最接近它的if语句配对使用;
C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
D. 以上都不正确。
4.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是( )。
A.0 B.2 C.-4 D. 4
5.设A,B均为整型变量,下列表达式中不是赋值表达式的是( )。
A. A=(b+3,b+5,--b) B. A=4*5; C. A=++A-B D.a=b=5
6.执行语句“x=(a=3,b=a++)”后,x,a,b的值依次为( )。
A. 4, 4, 3 B. 3,2,4 C.4,3,4 D.3,4,3
7.下列对数组操作不正确的语句是( )。
A. int a[5]; B. char b[ ]={‘h’,’e’,’l’,’l’,’o’};
C. int a[ ]={2,3,4,5}; D. char b[3 ][ ]={1,2,3,4,5,6};
8.下列常量中哪个是不合法的( )。
A.2e32.6 B. 0.2e-5 C. ‘a’ D. 123
9.定义结构体的关键字是( )。
A. union B. enum C. struct D. typedef
10.设整型变量a为5,使整型变量b不为2的表达式是( )。
A. b=a/2 B. b=6-(--a) C. b=a%2 D. b=a>3?2:1
二、填空题(请把你认为正确答案填入相应横线内。) |
12.C语言是由 函数 构成。
13.表达式(a=1,b=2,b++&&- -a)的结果以%d形式显示,是____0_______________。
14.设有“int x=2,y”说明,则逗号表达式(y=x-1,x+y)的值是________3_________。
15.设有“int x=5”,则“x>0?2*x+1: 0”表达式的值是________11______________。
16.变量y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。_ Y%4==0&&Y%100!=0||Y%400==0 __。
17.C语言调用函数中,实参和形参是单项传递的,如有定义:m(float a,int b),则函数m的返回值是什么数据类型:____int_____________ 。
18. 逻辑运算符“||”遇到______1___________会产生短路现象。
19. 有如下输入语句:scanf(“%d%d%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是______1 3 2____________。(如需间隔符,可用中文描述)
20. 设变量定义为 int a[5]={1,3,5,7,9},*p=&a[2], 则*p的值是_______5_____________。
三、程序阅读题(阅读程序解释其中关键语句的作用及程序运行的结果,所有答案填入下划线内,注意:只有结果该题不得分。) |
fun(int a, int b)// 请解释这行__// 定义函数fun ,形参a和b ,返回值为整型
{
if(a>b) return (a); else return (b); //请解释这行_ //返回a和b之间的较大值
}
void main()
{
int x=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);// 请解释这行_// 参数为x和y时,第一次调用函数fun,得到一个返回值,将此返回值和2*z表达式的值作为参数,第二次调用fun函数,得到第二个返回值,赋值给r变量。
printf(“%d\n”,r);
}
结果:_______12______________________
22. 解释其中关键语句的作用并写出下列程序的运行结果。
void main()
{
int n;
for(n=3; n<=10; n++)//请解释这行_ //循环,循环变量n,循环次数最多8次,每循环一次n自增1_
{
if(n%5= =0) break; printf(“%d”,n); //请解释上行// 当n为5的倍数时跳出循环,无论是否为5的倍数,都需要在屏幕上打印n的值。
}
}
结果:_____34________________________
23.解释其中关键语句的作用并写出下列程序的运行结果。
#include #define N 5 //请解释这行_// 定义符号常量N的值为5 __ { int i=0,a[N]={0}; for(;i<5;i++) a[i]=2*i+1;//请解释这行_//循环为数组a赋值,1 3 5 7 9_ for(i=0;i<5;i++)printf("%d\na[i]);//请解释这行_//逆序循环输出数组中的值_ } 结果:__1换行3换行 换行5换行 7换行 9 ________________ 代码写在下方: #include void main() { int x,y; scanf("%d",&x); //若此处为对变量x直接赋值也可以得分 if(x<=1) { y=x; } else if(x>=10) { y=3*x-11; } else { y=2*x-1; } printf("y=%d\\n",y); } 25. 编程计算1+1/2+1/3+1/4+…+1/n 的和。 要求整型变量n的值从键盘输入,n的范围在10-20之间,若不在此范围内,要求用户重新输入。合理设计变量,使之正确输入和输出。 代码写在下方: #include void main() { int i; double sum=0; for(i=1;i<=100;i++) sum=sum+1.0/i; printf("sum=%f\\n",sum); } 26. 编程实现:超级女生歌手大赛初赛评审系统,比赛规则,有3位评委依次表态“通过”或者“不通过”,若任意两位以上评委表态“通过”则显示该选手进入决赛,否则显示淘汰。合理设计变量,使程序逻辑清晰,运行结果正确。 代码写在下方: void main() { int i,j,a[3],cnt=0; char ch; for(i=0;i<3;i++) { printf(“请为选手打分,Y表示通过,N表示淘汰\\n”); scanf("%c",&ch); if(ch==’Y’||ch==’y’) a[i]=1; else if(ch==’N’||ch==’n’) a[i]=0; else i--; } for(i=0;i<3;i++) { if(a[i]==1) cnt++; } if(cnt>=2) {printf(“该选手进入决赛”);} else {printf(“很遗憾该选手被淘汰”);} } 27. 编写一个函数int myStrlen( char *s ),要求实现strlen函数的功能。 合理设计变量,使得程序正确输入和输出。要求以下测试用例通过。 测试用例: 输入:helloworld并回车。 输出:字符串的长度为10 代码写在下方: . int myStrlen( char *s ) { int i,cnt=0; for(i=0;i<10000;i++) { if(*s!=’\\0’)i++; else {cnt=i;break;} } return cnt; }
24. 编写一个C语言程序,要求,从键盘输入x的值,按下列公式判断并计算后,并输出y的值。合理设计变量,使程序正确输入和输出。四、程序设计题