C语言程序设计复习题

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

《C语言程序设计》复习题

一、判断题(本大题共60个小题)

1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

3.注释内容太多会影响程序的执行效率。

4.变量要“先定义,后使用”。

5.字符常量'a'与字符串常量"a"没有区别。

6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。

7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。

8.表达式5/2+5.0/2+7%6 的值为5.5。

9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。

10.设int a=12; 则表达式a/=a+a的值是0.5。

11.在C语言中,运算符!比&&的优先级高。

12.在C语言中,运算符的优先级最小的是逗号运算符。

13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。

14.以下程序运行结果是:1,7,0

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

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

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

void main()

{ char c;

c=getchar();

while (c!='?' ) { putchar(c); c=getchar();}

}

18.该程序运行结果是:< > < > < > #

void main()

{ int i;

for(i=1;i<=5;i++)

{

if(i%2) putchar(‘<’);

else continue;

putchar(‘>’);

}

putchar(‘#’);

}

19.break语句可用于循环语句和if语句中。

20.continue语句不可用于循环语句中。

21.以下程序的功能是判断一个数是否是素数

#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。

void main() { int i,s ; for(i=2;i< =100;i+=2 ) s+=i; } (注意s的初始值)

23.数组的下标是从1开始计数的。

24.若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是4。

25.下面程序段运行时输出结果是:0 15 24

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

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.以下程序的功能是:将一个数组中的元素按逆序重新存放并打印交换后的数组。

#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]。

29.下面程序段运行时输出结果是:456

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"

void main() { char ch[3][5]={ "AAAA" ,"BBB" ,"CC" }; printf(" \"%s\" " ,ch[1]); }

31.strlen("How are you\n")的值是12 。

32.C语言中字符串结束的标志是'\0'

33.strcmp("how","How")的值>0 。

34.以下程序的功能是:字符串a连接到字符串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;

相关文档
最新文档