C语言各章节练习题(含答案)

更新时间:2023-09-12 01:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、 C语言概述练习题

选择1. 一个C程序的执行是从 。 A) 本程序的main函数开始,到main函数结束

B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2. 以下叙述不正确的是 。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面

3. 以下叙述正确的是 。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B) 在C程序中,main函数必须位于程序的最前面

C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句 4. 一个C语言程序是由 。

A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成

二、数据类型、运算符与表达式

选择. 1. 若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 2. 下列四组选项中,均不是C语言关键字的选项是 。 A) define IF type B) getc char printf C) include case scanf D) while go pow

3. 下列四组选项中,均是不合法的用户标识符的选项是 。(C语言标识符由字 母, 数字,下划线组成,开头不能是数字)

A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP

8. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为 。

A) D B) 68 C) 不确定的值 D) C

填空 1. 若有以下定义,则计算表达式y+=y-=m*=y后的y值是【1】。-16 int m=5,y=2;

7. 若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为【8】,n的值为【9】。10 6

x+=n++ //若改为x+=++n 则计算后X为11,n为6

10.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为【12】。 f 三、简单的C程序设计

选择 1. putchar函数可以向终端输出一个 D 。

A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 3. 阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为 A 。 main()

{ int x,y,z;

scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z);

} A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 4. 根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 C 。 main()

{ char ch1,ch2,ch3; 输入语句

printf(“%c %c %c”,ch1,ch2,ch3);

} 输出形式:A B C 输入形式:A B C A) scanf(“%c%c%c”,&ch1,&ch2,&ch3); B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C) scanf(“%c %c %c”,&ch1,&ch2,&ch3); D) scanf(“%c%c”,&ch1,&ch2,&ch3); 5. int j=-1; if(j<=1)printf(“***\\n”); else printf(“%%%\\n”); A、*** B、%%% C、***\\n D、%%%\\n

6. 有一输入语句scanf(“%d”,k);则不能使float类型变量k得到正确数值的原因是【8】和【9】。格式控制符应为%f;变量k前缺少& 7、写出下面程序的输出结果。 (1) main() {char c1,c2; c1=65;c2=66;

printf(\printf(\}

a ,66 65,b

四、逻辑运算与判断选取控制

2. 判断char型变量ch是否为大写字母的正确表达式是 C 。

A)‘A’<=ch<=‘Z’ B)(ch>=‘A’)&(ch<=‘Z’) C)(ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch)

4. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 A 。 A) 0 B) 2 C) 3 D) 4 5. 以下程序的运行结果是 B 。 main()

{ int a,b,d=241; a=d/100%9; b=(-1)&&(-1);

printf(“%d,%d”,a,b); }

A) 6,1 B) 2,1 C) 6,0 D) 2,0 7. 以下程序的运行结果是 C 。 main()

{ int m=5; if(m++>5) printf(“%d\\n”,m);

else;

printf(“%d\\n”,m--); }

A) 4 B) 5 C) 6 D) 7

8. 若运行时给变量x输入12,则以下程序的运行结果是 D 。 main()

{ int x,y;

scanf(“%d”,&x); y=x>12 ? x+10 : x-12; printf(“%d\\n”,y);

} A) 4 B) 3 C) 2 D) 0 7. 以下程序的运行结果是_。 main( ) { int i , j;

a = 3; b = 5;

printf(“a=%d,b=%d\\n”, a,b); c = (++a) * b;

printf(“a=%d,b=%d\\n”, a,b); printf(“c=%d\\n”, c); }

a=3,b=5 a=4,b=5 c=20

五、循环控制

选择1.设有程序段 int k=10; while(k=0)k=k-1;

这下面描述中正确的是___C______.

a)while循环执行10次 b)循环是无限循环 c)循环体语句一次也不执行 d)循环体语句执行一次

5.以下程序段____C____. x=-1; do{

x=x*x; }

while(!x); a)是死循环 b)循环执行二次 c)循环执行一次 d)有语法错误

8.若i为整型变量,则以下循环执行次数是__B___. for(i=2;i==0;)printf(\

a)无限次 b)0次 c)1次 d)2次 10.以下正确的描述是___B____.

a)continue语句的作用是结束整个循环的执行 b)只能在循环体内和switch语句体内使用break语句

c)在循环体内使用break语句或continue语句的作用相同 d)从多层循环嵌套中退出时,只能使用goto语句

3.下面程序的运行结果是_____s=254____. #include main()

{int a,s,n,count; a=2;s=0;n=1;count=1;

while(count<=7){n=n*a;s=s+n;++count;} printf(\ }

4.下面程序段的运行结果是__369 【回车】__sum=20__. main()

{ int i=1,sum=0; While(i<=10)

{ if ( i%3==0)

{ sum+=i; printf(“-”,i); } i++;

}

printf(“”\\n);

prinf(“sum=%d”,sum); }

5.下面程序段的运行结果是__D____. main() { int n=3; switch(n) {

case 0: printf(“A”);break; case 1: printf(“B”);break; case 2: printf(“C”);break; case 3: printf(“D”);break;

default:printf(“E”); }

7. 下面程序的运行结果是_3 6 9____. main()

{ int i,sum=0; for (i=1;i<=10;i++)

if ( i%3!=0) continue;

printf(“-”,i); } printf(“”\\n);

} 六、数组

1.已知int a[10];则对a数组元素引用不正确的是( ) A.a[10] B.a[4+5] C.a[10-6] D.a[2]

2.以下对二维数组a的正确说明是___C_____.

a)int a[3][]; b)float a(3,4); c)double a[1][4] d)float a(3)(4); 6.若有定义:int a[6]={1,2,3,4,5};则语句a[1]=a[3]+a[2+2]-a[3-1];运行后a[1]的值为( )

A.6 B.5 C.1 D.2 7.下面程序段的运行结果是____D_____. int main() {

int i,t,a[10]={25,40,29,8,17,6,15,4,3,2}; t=a[0];

for(i=0;i<10;i++) if(a[i]

return 0;

}

a)29 b)40 c)15 d)2

填空 1. 若有定义:double x[3][5];则x数组中行下标的下限为____0_____,列下标的上限为___4______.

七、函数 选择

2.以下正确的函数定义形式是___A_____.

a)double fun(int x,int y) b)double fun(int x; int y) c)double fun(int x, int y); d)double fun(int x,y);

3.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为__B____.

A)地址传递 B)单向值传递 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式

填空 1.以下程序的运行结果是_____.max is 2 #include int max(int,int); main()

{int a=1,b=2,c; c=max(a,b);

printf(\ }

int max(int x,int y) {int z; z=(x>y)?x:y; return(z); }

3.以下程序的运行结果是____4+5=9____. #include int plus(int x,int y)

本文来源:https://www.bwwdw.com/article/h9mh.html

Top