一、选择题:(本题共10小题,每小题2分,共20分)
- 以下关于C程序错误的是( C )。
A.语句最后必须是分号
B.基本组成单位是函数
C.注释可以用\\开始
D.一条语句可以分成多行来写
2.C语言中,使用strcmp函数需要包含的头文件是( A )。
A.string.h
得分 |
|
B.math.h
C.stdlib.h
D.stdio.h
3.下面程序输出结果为( B )。
int a=1,b=0;
printf("%d",b=a+b);
printf("%d",a=2*b);
A.1,0
B.1,2
C.3,2
D.0,0
4.表达式10!=9的值是( B )。
A.0
B.1
C.8
D.非0
5.表达式的值为3的是( D )。
A.2+3/2
B.17-14%10
C.13/3-2
D.(3+6)/(13-9)
6.下列可用作C语言字符串常量的是( C )。
A.X
B.$ABC
C."Horse"
D.¥abe
7.执行代码int a=205,b=206:printf("%d",(a,b));输出结果为( B )。
A.205
B.206
C.205,206
D.206,206
8.以下程序段的功能是什么?( A )。
int temp,x,y;temp=x,x=y,y=temp;
A.交换x和y的值
B.交换x和temp的值
C.交换x和z的值
D.x和y从大到小排序
9.执行语句int a=1;while(a<4) printf("%d",a++);的输出结果为( D )。
A.1
B.12
C.1234
D.123
10.C语言结构体类型变量在程序执行期间( A )。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中
二、判断题:(本题共5小题,每小题2分,共10分)
11.可以用结构体变量.成员名来引用结构体变量中成员的值。( √ )
12.引用数组元素时,下标必须是整型常量。( × )
13.一个函数内的复合语句中定义的变量,只在函数内部有效。( × )
14.在不同函数中可以使用相同名称的变量。( √ )
15.while循环只能用break语句退出。( × )
得分 |
|
- 填空题:(本题共2小题,每小题5分,共10分)
16.补全以下代码,使得函数能求出两个整数的和,并通过形参将结果返回。
void add(int x,int y, int *z )
{z=x+y;}
17.若有char s1[5]="abed",s2[]="xyz";则strlen(strcpy(s1,s2))的值为__3__。
得分 |
|
四、简答题:(本题共2小题,每小题5分,共10分)
18.请说明以下程序段的功能,以及最后i的值是多少?
int x,avg=0,i;
for(i=0;i<10:i++)
{scanf("%d",&x);avg+=x;}
avg/=10;
printf("%d",avg);
答:
通过 for 循环实现输入 10 个整数,累加后求平均值并输出,
循环结束后 i 的值变为 10。
19.请说明以下程序段的功能,以及最后输出结果是多少?
#include <stdio.h>
void f(int *p,int *q);int main( )
{int m=1,n=2,*r=&m;f(r,&n);
printf("%d,%d",m,n);return 0;}
void f(int*p,int *q)
{p=p+1;*q=*q+1;}
答:功能是在函数 f 中,
将指针 p 指向的地址向后移动一个单位(这里对程序逻辑有一定影响,因为 p 是函数形参,
这种操作不会改变 main 函数中 r 的指向),并将指针 q 指向的变量的值加 1。
最后输出结果为 1,3。
得分 |
|
五、计算题:(本题共2小题,每小题10分,共20分)
20.分析下列程序,回答下列问题。若输入的值为75,则:
#include <stdio.h>
void main( )
{
int score,n=0;
scanf("%d",&score);switch(score/60)
case 1:
printf("%d",score):
n++;
break;
case 0:
printf("%d",score);
}
(1)程序结束时,n的值是多少?
(2)输出结果是多少?
答:输入 75,score / 60 的值为 1,执行 case 1 分支,
输出 75 并将 n 加 1,然后 break 跳出 switch 语句,
所以(1) n 为:1;(2)输出结果: 75。
21.分析下列程序,回答下列问题。
#include<stdio.h>
int main()
int i,a,b,c;for(i=100;i<=999;i++)
a=i%10;
b=(i%100)/10;c=i/100;if(i==a*a*a+b*b*b+c*c*c)
if(i==153)
printf("i=%d,a=%d,b=%d",i,e,b);
retum 0;
若i=153,则:
(1)变量a的值是多少?
(2)变量b的值是多少?
答:当 i = 153 时,a = i % 10 = 3,b = (i % 100) / 10 = 5,c = i / 100 = 1,
满足条件 i == a * a * a + b * b * b + c * c * c,
所以(1):变量 a 的值为 3;(2):变量 b 的值为 5。
得分 |
|
六、应用题:(本题共2小题,每小题15分,共30分)
22.请编写程序,实现以下功能:把201~209自然数按次序(按行存储)赋值给二维数组a[3][3],并在屏幕上输出。
#include <stdio.h>int main() { int a[3][3]; int i, j, num = 201; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { a[i][j] = num++; printf("%d ", a[i][j]); } printf("\n"); } return 0;}
23.某专业共有30名学生,现需要统计某门课程成绩,要求从键盘上输人这30名学生该门课程的成绩。并且输出最高分。编写程序,实现上述功能。
#include <stdio.h>
int main() {
int scores[30];
int i, max;
// 输入成绩
for (i = 0; i < 30; i++) {
scanf("%d", &scores[i]);
}
// 初始化最大值为第一个成绩
max = scores[0];
// 找出最大值
for (i = 1; i < 30; i++) {
if (scores[i] > max) {
max = scores[i];
}
}
printf("最高分:%d\n", max);
return 0;
}
标签:10,变量,int,C++,score,printf,main From: https://www.cnblogs.com/cyhms/p/18635504