C语言程序设计考试自测复习题及参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、填空题:本大题共 7 小题,每空 2 分,本题共 20 分。
31、 在 Turbo C 中,一个 int 型变量在内存中所占的字节数是 2 ,一个 float
型变量在内存中所占的字节数是 4 。
32、表达式 3>2&&2>1 的值为
1

第3页,共6页
33、若 x 为 int 型变量,则执行以下语句后 x 的值是
解一:main()
{int a,b,c,t;
…………定义变量部分 1 分
scanf(“%d,%d”,a,b ) ; 或 scanf(“%d%d”,a,b ) ;
…………输入变量值部分 1 分
if(a<b){t=a;a=b;b=t;}
if(a<c){t=a;a=c;c=t;} …………交换变量部分 2 分
12、下面这个程序的输出是( B )
main()
{int a,b,c;
a=7;b=8;c=9;
if(a>b)
a=b;b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c) ;
}
A、 a=7 b=8 c=7
B、 a=7 b=9 c=7
C、 a=8 b=9 c=7
D、 a=8 b=9 c=8
(√ )
24、++和—运算符不仅可以用于变量,还可以用于常量和表达式。( × )
25、=是关系运算符,= =是赋值运算符。( × )
26、只有一个;的语句,即空语句,在 C 语言中是不合法的。( × )
27、以下程序块对 switch 语句的应用是正确的。( × )
int x=0,y=10;
switch(x)
C 程序设计自测题 4 参考答案
一、选择题。
1、C 语言规定:源程序中 main 函数的位置:( C )
A、必须在最开始
B、Hale Waihona Puke Baidu须在系统调用的库函数的后面
C、可以任意
D、必须在后面
2、 以下叙述不正确的是( D )
A、一个 C 程序可由一个或多个函数组成
B、 一个 C 程序必须包含一个 main 函数
if(max<c)max=c;
…………比较三个变量部分 2 分
printf(“%d”,max) ; } …………输出最大值部分 1 分
解三:main()
{int a,b,c;
…………定义变量部分 1 分
scanf(“%d,%d”,a,b ) ; 或 scanf(“%d%d”,a,b ) ;
…………输入变量值部分 1 分
C、 C 程序的基本组成单位是函数
D、 在 C 程序中,注释说明只能位于一条语句的后面
3、下面不正确的字符常量是( A )
A、”C”
B、’?’ C、’W’
D、’\101’
4、下列选项中哪个是合法的标识符( C )。
A、3days
B、 char C、 _above D、 a>b
5、若有定义 int i=3,j=3; printf("%d, %d",++i ,j++);
-16

x=8;
x+=x-=x+x;
34、int i=1,j=7,a;
a=i+(j%4!=0) ; 则 a=
2。
35、一维数组的下标从
0
开始。
36、C 语言中,表示“真”值用
1

37、C 语言提供的三种逻辑运算符是 || 、 ! 、 && 。
四、分析程序运行结果:本大题共 3 小题,每题 3 分,本题共 9 分,将下列程序运
do
while(i<=10)
{sum+=i;
{sum+=i;
i++;
i++;
} while(i<=10) ;
}
printf("%d",sum) ;
printf("%d",sum) ;
}
}
A、 11,11 B、11,0 C、0,11 D、0,0
18、若 a 和 b 都是 int 型变量,则下面表达式的值为( B )。
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0) z=0;
else z+=1;
printf("%d\n",z);
}
第1页,共6页
A、 3
B、2
C、1
D、0
10、设有 int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d) 后 n 的值( B )
x=3; printf(“%d”,x) ; } 五、编写下列程序:本大题共 2 小题,本题共 11 分。
41、 请编写一个程序,实现打印下列图案。(6 分)
*
**
***
****
*****
解一:“*”利用循环语句输出,得 6 分。
main()
{ int i,j;
…………定义变量部分 1 分
for(i=1;i<=5;i++)
………外层循环部分 1 分
{for(j=0;j<=5;j++) 或 for(j=0;j<i;j++)
printf("%c",a[i][j]); …………输出 a[i][j]部分 2 分
printf("\n");}}
…………换行 2 分
42、有 3 个整数 abc,由键盘输入,输出其中最大的数。(5 分)
…………外层循环部分 1 分
{for(j=1;j<=i;j++)
printf("*");
…………输出”*”部分 2 分
printf("\n");}}
…………换行 2 分
解二:此题只使用 printf 语句输出,得 3 分。
main()
{printf(”*\n”) ;
printf(”**\n”) ;
printf(”***\n”) ;
行所得结果填写在题干后横线上。
38、 下列程序运行结果:Good! Pass! Fail!
main()
{int score=4;
switch(score)
{case 5: printf(“Very good!”) ;
case 4: printf(“Good!”) ;
case 3: printf(“Pass!”) ;
printf(“%d”,a) ;}
…………输出最大值部分 1 分
解二:main()
{int a,b,c,max;
…………定义变量部分 1 分
scanf(“%d,%d”,a,b ) ; 或 scanf(“%d%d”,a,b ) ;
…………输入变量值部分 1 分
if(a>b)max=a;
else max=b;
是( A )。
A、int a=b=c=5;
B、int a=5,b=5,c=5;
C、int a,b,c;
D、int a=5,c=5,b;
a=5,b=5,c=5;
b=5;
17、下列程序运行结果是( B )。
第2页,共6页
main()
main()
{int i=11,sum=0;
{int i=11,sum=0;
(a=2,b=5,b++,a+b)
A、 7
B、8
C、6
D、2
19、在 C 语言中,要求运算对象必须是整型的运算符是( D ) 。
A、/
B、++
C、!=
D、%
20、在语言中,引用数组元素是,数组下标的数据类型允许是( C )。
A、 整型常量
B、整型表达式
C、 整型常量或整型表达式 D、任何类型的表达式
if(a>b&&a>c)printf(“%d”,a) ;
if(c>b&&c>a)printf(“%d”,c) ;if(b>c&&b>a)printf(“%d”,b) ;……比较三个变量 并输出的
部分 3 分
第6页,共6页
C、double a[3][4];
D、float a(3)(4);
15、以下程序的运行结果是( B )
main()
{char c=’b’ ;
printf(“%c”,(c>=‘a’ && c<=‘z’)?c-32:c) ;
}
A、 b
B、B
C、98
D、66
16、下列选项定义了整型变量 a,b 和 c,并为这三个变量赋初值为 5,不正确的语句
二、判断题:本大题共 10 小题,每题 2 分,共 20 分,正确的划√,错误的划×。
21、在一个 C 程序中,必须有且只能有一个主函数 main()。( √ )
22、int data(5); 这种定义方式是正确的( × )
23 、一维数组初始化的数据个数允许少于数组的长度 ,但不能多于数组的长度 。
C、e-5
D、1.2E-3.5
8、设有定义 int a,b;当执行 scanf(“%d,%d”,&a,&b);语句时,若要求 a、b 的值分
别为 12、24,则正确的输入格式为:( C )
A、a=12,b=24 B、a=12 b=24 C、12,24
D、12 24
9、以下程序的输出结果是:( B )
A、 1
B、 2
C、 3
D、0
11、C 语言中 while 和 do-while 循环的主要区别是:( A )
A、do-while 的循环体至少无条件执行一次
B、while 的循环控制条件比 do-while 的循环控制条件严格
C、do-while 允许从外部转到循环体内
D、do-while 的循环体不能是复合语句
{case y:x++;break;
case y+2:x+=10;break;
case y-1:x=-7;break;} //是 case 错了,一定要常量
28、关系运算符的运算对象可以是任意类型。( √ )
29、a+2=b;是合法的赋值语句。( × )
30、程序的三种基本结构分别是顺序结构、选择结构、循环结构。( √ )
case 2: printf(“Fail!”) ;break;
default : printf(“data error!”) ;}}
39、下列程序运行结果:
4
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%3= =1)
{
b+=3;
continue;
}
b=b-5;
}
printf("%d\n", a) ;
}
40、下列程序运行结果:
3
main()
{int x=100,a=10,b=20;
int v1=5,v2=0;
if(a<b)
第4页,共6页
if(b!=15) if(v1= =0) x=1; else if(v2!=0) x=10;
运行结果为: ( A )
A、4,3
B、3,3 C、4,4
D、3,4
6、已知 int i;
float f;
double d;
则表达式 10+’a’+i*f 值的数据类型为( C )
A、int
B、float
C、double
D、不确定
7、下列实型常量用指数形式表示正确的是:( A )
A、123E2
B、.e4
13、 以下对数组的定义方式哪个是正确的?( A )
A、char name[10];
B、 int n=2;
int a[n];
C、char name[-10];
D、 float weight[10.3];
14、以下对二维数组 a 的正确说明是( C )。
A、 int a[3][];
B、float a[3,4];
printf(”****\n”) ;
printf(”*****\n”) ;}
解三:利用数组输出,得 6 分。 main()
{ char a[5][6]={“*”,”**”,”***”,”****”,”*****”},i,j; ………定义变量及数组初始化部分 1 分
第5页,共6页
for(i=0;i<=4;i++)
相关文档
最新文档