《C语言程序设计》复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》复习题
一、判断题(本大题共60个小题)
1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。(B)
2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。(B)
3.注释内容太多会影响程序的执行效率。(B)
4.变量要“先定义,后使用”。(A)
5.字符常量'a'与字符串常量"a"没有区别。(B)
6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。(B)
7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。(A)
8.表达式5/2+5.0/2+7%6 的值为5.5。(A)
9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。(B)
10.设int a=12; 则表达式a/=a+a的值是0.5。(B)
11.在C语言中,运算符!比&&的优先级高。(A)
12.在C语言中,运算符的优先级最小的是逗号运算符。(A)
13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。(A)
14.以下程序运行结果是:1,7,0 (A)
void main()
{
int x=1,y=1,z=10;
if(z< 0)
if(y> 0) x=3;
else x=5;
printf(" %d," ,x);
if(z=y< 0) x=3;
else if(y==0) x=5;
else x=7;
printf(" %d,%d" ,x,z);
}
15.该程序运行结果是:BCother (A)
void main()
{ char x=‘B’;
switch(x)
{
case ‘A’: printf(“A”);
case ‘B’: printf(“B”);
case ‘C’: printf(“C”);
default: printf(“other”);
}
}
16.下面程序段运行时输出结果是a=2,b=8 (B)
void main()
{
int x=1,y=1,a=2,b=7;
switch(x)
{
case 1: switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2: a++;b++;break;
case 3: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
17.下面程序,当输入为:"abc?" 时,执行结果是:abc (A)
void main()
{ char c;
c=getchar();
while (c!='?' ) { putchar(c); c=getchar();}
}
18.该程序运行结果是:< > < > < > # (A)
void main()
{ int i;
for(i=1;i<=5;i++)
{
if(i%2) putchar(‘<’);
else continue;
putchar(‘>’);
}
putchar(‘#’);
}
19.break语句可用于循环语句和if语句中。(B)
20.continue语句不可用于循环语句中。(B)
21.以下程序的功能是判断一个数是否是素数(A)
#include
#include
void main( )
{ int m,i;
scanf(" %d" ,& m);
for(i=2;i< =sqrt(m);i++) if(m%i==0) break;
if(i> sqrt(m)) printf(“%d 是素数" ,m);
else printf(“%d 不是素数" ,m); }
22.以下程序的功能是计算2+4+6+8+...+98+100。(B)
void main() { int i,s ; for(i=2;i< =100;i+=2 ) s+=i; } (注意s的初始值)
23.数组的下标是从1开始计数的。(B)
24.若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是4。(A)
25.下面程序段运行时输出结果是:0 15 24 (A)
void main() { int i=0,a[10]; for(i=0;i< =9;i++) a[i]=i*3; printf(" %d %d %d" ,a[0],a[5],a[8]); } 26.下面程序段运行时输出结果是:1 0 3 3 4 5 6 6 (B)
void main()
{ int a[8]={1,0,1,0,1,0,1,0},i;
for(i=2;i< 8;i++) a[i]+= a[i-1] + a[i-2];
for(i=0;i< 8;i++) printf(“%d ”,a[i]); }
27.以下程序的功能是:将一个数组中的元素按逆序重新存放并打印交换后的数组。(A)
#define N 7
#include < stdio.h>
void main()
{ static int a[N]={12,9,16,5,7,2,1},k,s;
for (k=0;k< N/2;k++) { s=a[k]; a[k]=a[N-1-k]; a[N-1-k] =s; }
printf(" \n交换后的数组:\n" ); for(k=0;k< N;k++)printf(" %4d" ,a[k]); }
28.若有定义int a[3][5];则排列在数组中的第9个元素是a[1][3]。(A)
29.下面程序段运行时输出结果是:456 (B)
void main() { int a[][3]={ 1,2,3,4,5,6,7,8,9},i,k=2; for(i=0;i< 3;i++) printf(“%d”,a[k][i]); }
30.下面程序段运行时输出结果是:"AAAA" (B)
void main() { char ch[3][5]={ "AAAA" ,"BBB" ,"CC" }; printf(" \"%s\" " ,ch[1]); }
31.strlen("How are you\n")的值是12 。(A)
32.C语言中字符串结束的标志是'\0' (A)
33.strcmp("how","How")的值>0 。(A)
34.以下程序的功能是:字符串a连接到字符串b,并显示字符串b。(B)
void main()
{ char a[200]=”how are you.”, b[200]; int i=0;
while(a[i] !=' \0' ) {b[i]=a[i]; i++; } b[i]=' \0' ;
printf(“新字符串是%s”,b); }
35.当运行以下程序时,从键盘输入:AAAaaaAAA Abcd234abc AAaa,运行结果为:AaaAAAaaa。
void main()
{ char s[80], c='a';
int i=0;
scanf("%s",s); (注意scanf遇到空格的处理,与gets的不同)
while(s[i++]!='\0')
if(s[i] == c) s[i]=s[i]-32;