您好,欢迎来到星星旅游。
搜索
您的当前位置:首页C语言练习题及答案1

C语言练习题及答案1

来源:星星旅游


C 语 言 练 习 题 1

C语言练习题1

第一章 C语言概述

1、所有C函数的结构都包括的三部分是( C ) A.语句、花括号和函数体 B.函数名、语句和函数体 C.函数名、形式参数和函数体 D.形式参数、语句和函数体

2、C语言中主函数的个数是( B )

A.2个 B.1个 C.任意个 D.10个 3、下面可能不影响程序正常运行的是( C ) A.语法错误 B.逻辑错误 C.警告提示 D.算法错误

4、一个C程序的执行是从( A )

A. 本程序的main()函数开始,到main()函数结束.

B. 本程序文件的第一个函数开始,到本程序文件第一个函数结束. C. 本程序文件的第一个函数开始,到本程序main函数结束.

D. 本程序的main()函数开始,到本程序文件的最后一个函数结束. 5、C程序由( C )组成。

A.子程序 B.主程序和子程序 C.函数 D.过程

6、下列关于C语言注释的叙述中错误的是( D )。

A.以“/*”开头并以“*/”结尾的字符串为C语言的注释内容。

B.注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。 C.程序编译时,不对注释作任何处理。 D.程序编译时,需要对注释进行处理。

7、C语言源程序经过编译后,生成文件的后缀是____C_____。 A、.c B、.exe C、.obj D、.cc 8、以下说法中正确的是____C_____。

A、C语言程序总是从第一个函数开始执行

B、在C语言程序中,要调用函数必须在main()函数中定义 C、C语言程序总是从main()函数开始执行

D、C语言程序中的main()函数必须放在程序的开始部分 9、以下叙述中正确的是__A____。

2

C语言练习题1

A:C程序中注释部分可以出现在程序中任意合适的地方 B:花括号\"{\"和\只能作为函数体的定界符

C:构成C程序的基本单位是函数,所有函数名都可以由用户命名 D:分号是C语句之间的分隔符,不是语句的一部分 第二章 变量与表达式 第一节 简单表达式 1.算术运算符及其表达式

1、C语言中运算对象必须是整型的运算符是_____A______。

A、% B、* C、+ D、 / 2.下面运算符优先级最高的是 (C )

A.<= B.= C.% D.&& 3、下面程序 main() {

int x=10,y=3; printf(\"%d\\n\ }

的输出是___C___。

A:0 B:1 C:3 D:不确定的值 4、执行下面程序段后,c3中的值是_A____ int c1=1 , c2=2 , c3; c3=c1/c2;

A:0 B:1/2 C:0.5 D:1

3

C语言练习题1

2.C语言表达式书写规则

1、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的C语言表达式是___A___。

A:x/y*z B:x*(1/(y*z)) C:x/y*1/z D:x/y/z

2、设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是___B___。

A:(a+b)*h/2 B:(1/2)*(a+b)*h C:(a+b)*h*1/2 D:h/2*(a+b) 第二节 变量 1.变量

1、下列关于C语言的关键字的叙述中错误的是( C )

A.关键字是C语言规定的具有特定意义的字符串,通常也称保留字。

B.用户定义的标识符不应与关键字相同。 C.ANSI C标准规定的关键字有个。 D.ANSI C标准规定的关键字有32个。

2、下面关于C语言用户标识符的描述,正确的是( D ) A. 不区分大小写 B. 用户标识符不能描述常量 C. 类型名也是用户标识符 D. 用户标识符可以作为变量名 3、以下( D )是正确的变量名。

A. a.bee B. -p11 C. int D. p_11 4、下面属于C语言标识符的是( D )

A. 2ab B. @f C. ?b D. _a12 5、下列保留字中用于构成循环结构的是( B )

A. if B. while C. switch D. default 6、以下定义语句中正确的是( C )。

A. char a='A'b='B'; B. float a=b=10.0; C. int a=10,*b=&a; D. float *a,b=&a; 7、下面标识符中,不合法的用户标识符为 ( D )

A) Pad B) a_10 C) _12ab D) int

8、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个

4

C语言练习题1

字符_____C____。

A、必须为下划线 B、可以是字母、数字和下划线中任一种字符

C、必须为字母或下划线 D、必须为字母 9、请选出可用作C语言用户标识符的一组标识符____B__。 ① void ② a3_b3 ③ For ④ 2a define _123 _abc DO WORD IF case sizeof A:① B:② C:③ D:④ 9、以下选项中合法的用户标识符是___B___。 A:long B:_2Test C:3Dmax D:A.dat 10、以下不能定义为用户标识符的是__D____。 A:scanf B:Void C:_3com_ D:int

11、在C语言中,如果下面的变量都是int类型,则输出结果是__A____ sum=pad=5;

pad=sum++,pad++,++pad; printf(\"%d\\n\

A:7 B:6 b C:5 D:4 2.常量和符号常量

1、以下( B )是错误的整型常量。

A. -0xcdf B. 018 C. 0xe D. 011

2、下列符号中用来表示C语言中的回车换行的是( B ) A. \\” B. \\n C. \\b D. \\\\

5

C语言练习题1

3、以下( C )是正确的字符常量。

A. \"c\" B. '\\\\'' C. 'W' D. \"\\32a\"

4、下面不正确的字符串常量是 ( A )

A) 'abc' B) \"12'12\" C) \"0\" D) \" \" 6、以下列出C语言常量中,错误的是__B____。 A:OxFF B:1.2e0.5 C:2L D:'\\72' 7、以下选项中,非法的字符常量是___C___。 A:'\' B:'\\17' C:\"\\n\" D:'\\xaa' 第三节 数据类型 1.整型数据

1、以下选项中不属于C语言的类型的是__D____。 A:signed short int B:unsigned char C:singed long D:long short

2、以下选项中可作为C语言合法整数的是___C___。 A:10110B B:0386 C:0Xffa D:x2a2 2.实型数据

1、以下选项中属于C语言的数据类型是___C___。 A:复数型 B:逻辑型 C:双精度型 D:集合型

2、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___C___。 A:1 B:2 C:2.0 D:2.5

3、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是___C___。

A:x=x*100+0.5/100.0; B:x=(x*100+0.5)/100.0

6

C语言练习题1

C:x=(int)(x*100+0.5)/100.0; D:x=(x/100+0.5)/100.0; 4、以下符合C语言语法的实型常量是__C____。 A:1.2E0.5 B:3.14159E C:.5E-3 D:E15 3.字符型数据

1、判断char型变量ch是否为大写字母的正确表达式是____C_____。 A、‘A’<=ch<=‘Z’ B、‘A’<=ch and ch<=‘Z’ C、‘A’<=ch && ch<=‘Z’ D、‘A’<=ch || ch<=‘Z’ 2. 设有语句char a='\\72';则变量a ( A ) 。

A)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法 3. 判断变量ch中的字符是否为数字字符,最简单的正确表达式是( D )。 A)ch>=0&&ch<=9 B)’0’<=ch<=’9’

C)ch>=’0’||ch<=’9’ D)ch>=’0’&&ch<=’9’ 4、设有说明语句: char a = '\\72'; 则变量a __A____。

A:包含1个字符 B:包含2个字符 C:包含3个字符 D:说明不合法 5、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\\101'是___A___。

A:字符A B:字符a C:字符e D:非法的常量 6、若有以下定义和语句: char c1='b',c2='e';

printf(\"%d,%c\\n\则输出结果是___B____

A:2,M B:3,E C:2,e D:输出结果不确定

7

C语言练习题1

7、已知字符A的ASCII码为十进制的65,下面程序的输出是__A___ main() {

char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3';

printf(\"%d,%c\\n\}

A:67,D B:B,C C:C,D D:不确定的值

8、若变量c为char类型,能正确判断出c为小写字母的表达式是D A:'a'<=c<= 'z' B:(c>= 'a')||(c<= 'z') C:('a'<=C)and ('z'>=c) D:(c>= 'a')&&(c<= 'z') 4.类型转换

1、表达式 ‘f’+ 10 的类型是____A_______。

A、int B、char C、double D、float 2、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是___D___。

A:6.500000 B:6 C:5.500000 D:6.000000 第四节 赋值语句

1、若有定义:int a=2; 则正确的赋值表达式是( A )。 A. a-=(a*3) B. double(-a) C. a*3 D. a*4=3

2、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( C )

8

C语言练习题1

A) –3 B) 9 C) –12 D) 6 3、请选出合法的C语言赋值语句__B____。

A:a=b=58 B:i++; C:a=58,b=58 D:k=int(a+b); 4、若变量已正确定义并赋值,下面符合C语言的表达式是___B___。 A:a:=b+1 B:a=b=c+2 C:int 18.5%3 D:a=a+7=c+b 5、若变量a、i已正确定义,且i已正确赋值,合法的语句是__B____。 A:a==1 B:++i; C:a=a++=5 D:a=int(i); 6、以下非法的赋值语句是__C____。

A:n=(i=2,++i); B:j++; C:++(i+1); D:x=j>0; 7、以下选项中非法的表达式是___D___。

A:0<=x<100 B:i=j==0 C:(char)(65+3) D:x+1=x+1 8、若以下选项中的变量已正确定义,则正确的赋值语句是___C___。 A:x1=26.8%3; B:1+2=x2; C:x3=0x12; D:x4=1+2=3; 第五节 复杂表达式 1.自增、自减运算符

1、设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是printf(“%d,%d\\n”,x--,--y);( D )

A)10,3 B)9,3 C)9,2 D)10,2

2、设i为整型变量,且值为100,则语句++i;执行后i的值是____B_____。

A、100 B、101 C、102 D、语句错 3. 以下程序的输出结果是 ( B ) 。 # include main()

9

C语言练习题1

{

int i=010 , j = 10;

printf(\"%d,%d\\n\}

A) 11,10 B) 9,10 C) 010,9 D) 10,9 4.下列程序的运行结果是( A ) # define A 5 # define B A+1 main( ) {int a; a=B;

printf(″%d\\n″a--); }

A.6 B.5 C.4 D.出错 5、以下程序的输出结果是___A___。 #include main() {

int i=10,j=10;

printf(\"%d,%d\\n\

}

A:11,10 B:9,10 C:010,9 D

10

:10,9

C语言练习题1

6、有如下程序 main()

{ int y=3,x=3,z=1;

printf(\"%d %d\\n\}

运行该程序的输出结果是___D___。

A:3 4 B:4 2 C:4 3 D:3 3

7、设x,y均为int型变量,且x=10,y=3,则以下数据的输出结果是 D printf(\"%d,%d\\n\。 A:10,3 B:9,3 C:9,2 D:10,2

8、下列关于单目运算符++、--的叙述中正确的是___D___。 A:它们的运算对象可以是任何变量和常量

B:它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C:它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D:它们的运算对象可以是char型变量、int型变量和float型变量 9.main() { int m=3,n=4,x; x=-m++; x=x+8/++n; printf(\"%d\\n\

11

C语言练习题1

}

程序运行后的输出结果是__D____。 A:3 B:5 C:-1 D:-2 10、有以下程序 main()

{ char a='a',b; printf(\"%c,\ printf(\"%c\\n\}

程序运行后的输出结果是___A___。 A:b,b B:b,c C:a,b D:a,c 11、若有以下定义和语句: int a=5 a++;

此处表达式a++的值是__B__ A:7 B:6 C:5 D:4 2.关系运算符与关系表达式

1、设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句( B )

if (x=y) printf(\" x is equal to y.\"); A. 语法错 B. 不能判断x和y是否相等 C. 编译出错 D. 能判断x和y是否相等 2、表达式:10!=9的值是___D___。 A:true B:非零值 C:0 D:1 3.逻辑运算符与逻辑表达式

12

C语言练习题1

1、能表示条件0≤x ≤100的表达式是 ( D )

A) 0<= x <=100 B. x >=0, x<=100 C) 0≤x ≤100 D) x>=0&& x<=100 2、设有:int a=1,b=2,c=3,d=4,m=2,n=2;

执行 (m=a>b) && (n=c>d) 后n的值为 ( C ) A) 0 B) 1 C) 2 D) 3

3、能正确表示a和b同时为正或同时为负的逻辑表达式是___D______。 A、(a>=0‖b>=0)&&(a<0‖b<0) B、(a>=0&&b>=0)&&(a<0&&b<0) C、(a+b>0)&&(a+b<=0) D、a*b>0

4、设有定义int a = 1,b = 2, c = 3;则下面的值为1的表达式是___A_______。 A、a&&7 B、aA:'a'&&'b' B:a<=b C:a||+c&&b-c

D:!((ab)&&(n=c>d) 后n的值为___B___。

A:1 B:2 C:3 D:4 7、有如下程序段 int a=14,b=15,x; char c='A';

13

C语言练习题1

x=(a && b) && (c<'B');

执行该程序段后,x的值为___D___。 A:true B:false C:0 D:1

8、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为____C__。

A:不定值 B:4 C:3 D:1 9. 以下程序的输出结果是__A____。 main()

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(\"%d\\n\}

A:1 B:0 C:非0的数 D:-1 10、有以下程序 main()

{ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a程序运行后的输出结果是__C____。 A:0,0 B:0,1 C:1,0 D:1,1 11、有以下程序

14

C语言练习题1

main()

{ int i=1, j=1, k=2; if ( (j++ || k++) && i++) printf(\"%d,%d,%d\\n\}

执行后输出结果是 C

A:1,1,2 B:2,2,1 C:2,2,2 D:2,2,3 12、以下程序的输出结果是 A main()

{ int a=4,b=5,c=0,d; d=!a&&!b||!c; printf(\"%d\\n\}

A:1 B:0 C:非0的数 D:-1 4. 逗号运算符

1、若x,i,j,k都是int型变量,则执行下面表达式后x的值为____C____ x=(i=11,j=22,k=33)

A、 11 B、22 C、33 D、66 2、若x和y都是int型变量,x=100、y=200,且有下面的程序片段 printf(\"%d\上面程序片段的输出结果是__A____。

A:200 B:100 C:100 200 D:输入格式符不够,输出不确定的值

15

C语言练习题1

3、若执行以下程序段,其输出结果是__B____ int a=0 , b=0 , c=0; c=(a-=a-5) , (a=b,b+3) ;

printf(\"%d , %d , %d\\n\" , a,b,c);

A:3,0,-10 B:0,0,5 C:-10,3,-10 D:3,0,3 第六节 基本输入输出语句 2.格式化输入与输出函数

1、若有说明语句:int a,b,c,*d=&c;,则能从键盘读入三个整数分别赋给变量a、b、c的语句是( A ) A. scanf(\"%d%d%d\); B. scanf(\"%d%d%d\); C. scanf(\"%d%d%d\); D. scanf(\"%d%d%d\); 2、调用scanf(“%d,%d”,&a,&b);时,正确的键盘输入是 ( A )

A) 10,20 B) a=10,b=20 C) 10:20 D) 10 20 3、下面的程序段 int i = 6;

printf (“***%-4d***\\n”, i); 的输出是______B______。

A、*** 6*** B、***6 *** C、***0006*** D、出错

4. 已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 ( D ) 。

# include main() {

16

C语言练习题1

char c1='A', c2='Y'; printf(\"%d,%d\\n\}

A) 因输出格式不合法,输出错误信息 B)65,90 C)A,Y D)65,

5、以下程序的输出结果是__D____。 main() { int k=17;

printf(\"%d,%o,%x\\n\}

A:17,021,0x11 B:17,17,17 C:17,0x11,021 D:17,21,11 6、若变量已正确说明为float类型,要通过语句

scanf(\"%f %f %f\给 a赋予10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:___B___。 A:10

22 33

B:10.0,22.0,33.0 C:10.0

22.0 33.0 D:10 22

33

17

C语言练习题1

7、X、Y、Z被定义为int型变量,若从键盘给X、Y、Z输入数据,正确的输入语句是___B___。

A:INPUT X,Y,Z; B:scanf(\"%d%d%d\ C:scanf(\"%d%d%d\:read(\"%d%d%d\8、已知i、j、k为int型变量,若从键盘输入:1,2,3↙,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是__C____。 A:scanf(\"%2d%2d%2d\:scanf(\"\"%d %d %d\

C:scanf(\"%d,%d,%d\:scanf(\"i=%d,j=%d,k=%d\

9、设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是___B___。

A:printf(\"x=%d\\n\:printf(\"x=%ld\\n\ C:printf(\"x=%8dL\\n\:printf(\"x=%LD\\n\10、有以下程序段

int m=0,n=0; char c='a'; scanf(\"%d%c%d\ printf(\"%d,%c,%d\\n\

若从键盘上输入:10A10↙,则输出结果是___A___。 A:10,A,10 B:10,a,10 C:10,a,0 D:10,A,0 11、有以下程序 main()

18

C语言练习题1

{ int x=102,y=012; printf(\"%2d,%2d\\n\}

执行后输出结果是__C____。

A:10,01 B:02,12 C:102,10 D:02,10 12、有以下程序 main()

{ char a,b,c,d;

scanf(\"%c,%c,%d,%d\ printf(\"c,%c,%c,%c\\n\}

若运行时从键盘上输入:6,5,65,66↙。则输出结果是___A___。 A:6,5,A,B B:6,5,65,66 C:6,5,6,5 D:6,5,6,6 13、有以下程序 main()

{ unsigned int a; int b=-1; a=b;

printf(\"%u\}

程序运行后的输出结果是___B___。 A:-1 B:65535 C:32767 D:-32768

19

C语言练习题1

14、下面程序的输出是__D____ main() { int k=11;

printf(\"k=%d,k=%o,k=%x\\n\}

A:k=11,k=12,k=13 B:k=11,k=13,k=13 C:k=11,k=013,k=oXb D:k=11,k=13,k=b

15、若有定义:int x,y; char a,b,c; 并有以下输入数据(此处代表换行): 1 2 A B C

则能给x赋整数1,给y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是___C____

A:scanf(\"x=%d y=%d\ B:scanf(\"%d%d\ C:scanf(\"%d%d%c%c%c\

D:scanf(\"%d%d%c%c%c%c%c%c\

16、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf(\"i=%d,f=%f\

为了把100和765.12分别赋给i和f,则正确的输入为 B A:100<空格>765.12<回车> B:i=100,f=765.12<回车>

20

C语言练习题1

C:100<回车>765.12<回车> D:x=100<回车>,y=765.12<回车> 第七节 顺序结构程序设计

1、C语言中用于结构化程序设计的三种基本结构是___A___。 A:顺序结构、选择结构、循环结构 B:if、switch、break C:for、while、do-while D:if、for、continue 第三章 控制语句 第一节if语句

1.if…else语句的三种形式

1、以下if语句错误的是( A )

A. if (xy); D. if (x==5) scanf (\"%d\else x++;

2. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 A main( ) { int x;

scanf(\"%d\if(x + + >5)

printf(\"%d\else

printf(\"%d\\n\}

A) 7和5 B) 6和3 C) 7和4 D) 6和4 3、若执行下面的程序时从键盘上输入3和4,

21

C语言练习题1

main() { int a,b,s;

scanf(\"%d %d\ s=a; if(aprintf(\"%d\\n\ }

则输出是__B____。

A:14 B:16 C:18 D4、有如下程序 main()

{ float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0)y=1.0/x; else y=1.0; printf(\"%f\\n\}

该程序输出结果是___C___。

A:0.000000 B:0.250000 C:0.500000 D5、有如下程序 main()

22

:20 :1.000000 C语言练习题1

{ int a = 2,b =- 1,c = 2; if(aif(b<0) c=0; else c++; printf(\"%d\\n\}

该程序的输出结果是___C___。 A:0 B:1 C:2 D:3 6. main() { int x; scanf(\"%d\

if(x--<5)printf(\"%d\\n\ else printf(\"%d\\n\ }

程序运行后,如果从键盘上输入5,则输出结果是__B____。 A:3 B:4 C:5 D:6 7、有一函数

┌ 1 x>0 y = ┤ 0 x=0 └ -1 x<0

以下程序段中不能根据x的值正确计算出y的值的是___C___。 A:if(x>0) y=1;else if(x==0) y=0;else y=-1;

23

C语言练习题1

B:y=0;if(x>0) y=1;else if(x<0) y=-1; C:y=0;if(x>=0)if(x>0) y=1;else y=-1; D:if(x>=0) if(x>0) y=1;else y=0;else y=-1; 8、有以下程序 main()

{ int i=1,j=1,k=2;

if((j++||k++)&&i++) printf(\"%d,%d,%d\\n\}

执行后输出的结果是___C___。

A:1,1,2 B:2,2,1 C:2,2,2 D:2,2,3 9、有以下程序 main()

{ int a=5,b=4,c=3,d=2; if(a>b>c)

printf(\"%d\\n\ else if((c-1>=d)==1) printf(\"%d\\n\ else

printf(\"%d\\n\}

执行后输出的结果是___B___。

24

C语言练习题1

A:2 B:3 C:4 D:编译时有错,无结果

10、有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是___C___。 A:if (c11、下列条件语句中,功能与其他语句不同的是___D___。 A:if(a) printf(\"%d\\n\ B:if(a==0) printf(\"%d\\n\ C:if (a!=0) printf(\"%d\\n\ D:if(a==0) printf(\"%d\\n\12、若执行下面的程序从键盘输入3和4,则输出是___B____ main()

25

C语言练习题1

{ int a,b,s; scanf(\"%d%d\s=a;

if (aprintf(\"%d\\n\}

A:14 B:16 C:18 D:20 13、以下程序输出结果是 C main () {int m=5;

if (m>5) printf (\"%d\\n\",m); else printf (\"%d\\n\",m--); A:7 B:6 C:5 D:4

14、假定所有变量均已正确说明,下列程序段运行后x的值是 B a=b=c=0;x=35; if(!a)x--;

else if(b);if(c)x=3; else x=4;

A:34 B:4 C:35 D:3

14、若执行以下程序时从键盘上输入9,则输出结果是 B Main()

26

C语言练习题1

{ int n; scanf (\"%d\if(n++<10) printf (\"%d\\n\else

printf(\"%d\\n\}

A:11 B:10 C:9 D:8

2.if语句的嵌套

1、C语言中规定,if语句的嵌套结构中,else总是( D )配对。 A.与最近的if B. 与第一个if

C.与按缩进位置相同的if D. 与最近的且尚未配对的if 2、下面程序 main()

{ int x=100, a=10, b=20, ok1=5, ok2=0; if(aprintf(\"%d\\n\ }

的输出是___A___。

A:-1 B:0 C:1 D:不确定的值

27

C语言练习题1

3.条件运算符

1、设ch是char型变量,其值为A,且有下面的表达式 ch=(ch>='A'&&ch<='Z')?(ch+32):ch 上面表达式的值是___B___。

A:A B:a C:Z D:z 2、假定 w、x、y、z、m均为int型变量,有如下程序段: w=1;x=2;y=3;z=4

m=(w{ int a=5,b=4,c=6,d;

printf(\"%d\\n\}

A:5 B:4 C:6 D:不确定 第二节 switch…case语句

1.以下关于switch语句和break语句的描述中,只有( B )是正确的。 A)在switch语句中必须使用break语句

B)在switch语句中,可以根据需要使用或不使用break语句 C)break语句只能用于switch语句中 D)break语句是switch语句的一部分

28

C语言练习题1

2.如下程序

main( )

{ int x=1,a=0,b=0; switch(x)

{ case 0:b++;break; case 1:a++;

case 2:a++;b++;break; default: a--;b--; break; }

printf(\"a=%d,b=%d\\n\",a,b); }

该程序的输出结果是( A )

A)a=2,b=1 B)a=1,b=1 C)a=1,3、有以下程序 main() { int c;

while((c=getchar() )!='\\n') { switch(c-'2') {

case 0: case 1: putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3);

default:putchar(c+2);break; }

29

b=0 D)a=2,b=2 C语言练习题1

} }

从第一列开始输入以下数据,↙代表一个回车符。 2473↙

程序的输出结果是___A___。

A:6677 B:6666 C:66778777 D:6688766 4、有如下程序 main()

{ int x=1,a=0,b=0; switch(x){

case 0: b++; case 1: a++; case 2: a++;b++; }

printf(\"a=%d,b=%d\\n\}

该程序的输出结果是___A___。

A:a=2,b=1 B:a=1,b=1 C:a=1,b=0 D:a=2,b=2

5、若a、b、c1、c2、x、y均是整型变量,正确的switch语句是__D____。 ①

switch(a+b);

{ case 1:y=a+b;break;

30

C语言练习题1

case 0:y=a-b;break; } ②

switch(a*a+b*b) { case 3:

case 1:y=a+b;break; case 3:y=b-a;break; } ③ switch a

{ case c1:y=a-b;break; case c2:x=a*b;break; default:x=a+b; } ④

switch (a-b)

{ default:y=a*b;break; case 3:case 4:x=a+b;break; case 10:case 11:y=a-b;break; }

A:① B:② C:③ D:④ 6、有以下程序

31

C语言练习题1

main()

{int a=15,b=21,m=0; switch(a%3)

{case 0:m++;break; case 1:m++; switch(b%2) {default:m++; case 0:m++;break; } }

printf(\"%d\\n\}

程序运行后的输出结果是___A___。 A:1 B:2 C:3 D:4 第三节for语句

1. 以下的for循环 ( C ) 。

for(x=0,y=0; (y!=123)&&(x<4); x + + );

A) 是无限循环 B)循环次数不定 C)执行4次 D)执行3次 2.下面程序的输出是 B main() {

int y=9;

32

C语言练习题1

for( ; y>0; y--) {

if(y%3==0) {

printf(\"%d\} }. }

A) 741 B) 852 C) 963 D) 8721 3. 执行下面的程序后,a的值为 B main(){

int a,b;

for (a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) {

b+=3; continue; } b-=5; } }

33

C语言练习题1

A) 7 B) 8 C) 9 D) 10

4.设int k;则语句for(k=0;k=1;k++);和语句for(k=0;k==1;k++);执行

的次数分别是 ( A)

A.无限和0 B.0和无限 C.都是无限 D.都是0

5.语句 for( i =0;i++<3;) ;执行后,变量i的值为( C )。 A)2 B)3 C)4 D)5 6、以下程序的输出结果是____D__。 main()

{ int x=10,y=10,i; for(i=0;x>8 ;y=++i) printf(\"%d %d \}

A:10 1 9 2 B:9 8 7 6 C:10 9 9 0 D:10 10 9 1 7、若x是int型变量,且有下面的程序片段

for(x=3;x<6;x++) printf((x%2)?(\"**%d\"):(\"##%d\\n\"),x); 上面程序片段的输出结果是___D___。 ① **3 ② ##3 ③ ##3 ④ **3##4 ##4 **4 **4##5 **5 **5 ##5

A:① B:② C:③ D:④

8、下面的程序中___C___错误(每行程序前面的数字是行号)。 1 #include

34

C语言练习题1

2 main() 3 {

4 float a[3]={0.0}; 5 int i;

6 for(i=0;i<3;i++) scanf(\"%d\7 for(i=1;i<3;i++)a[0]=a[0]+a[i]; 8 printf(\"%f\\n\9 }

A:没 B:第4行 C:第6行 D:第9、有如下程序 main()

{ int i,sum;

for(i=1;i<=3;sum++) sum +=i; printf(\"%d\\n\}

该程序的执行结果是__C____。 A:6 B:3 C:死循环 D:0 10、有如下程序 main() {

int n[5] = {0,0,0},i,k = 2;

for(i = 0; i < k; i++) n[i] = n[i] + 1;

35

8行 C语言练习题1

printf(\"%d\\n\}

该程序的输出结果是___D___。

A:不确定的值 B:2 C:1 D:0 11、有如下程序 main() {

int a[3][3] = {{1,2},{3,4},{5,6}}, i,j,s = 0; for(i = 1; i < 3; i++) for(j = 0; j <= i; j++) s += a[i][j]]; printf(\"%d\\n\}

该程序的输出结果是__A____。 A:18 B:19 C:20 D:21 12、以下程序执行后sum的值是__C____。 main() { int i, sum;

for(i=1;i<6;i++)sum+=i; printf(\"%d\\n\ }

A:15 B:14 C:不确定 D:0

36

C语言练习题1

13、以下程序的输出结果是___A___。 main() {int a=0,i; for(i=1;i<5;i++) { switch(i) {case0: case3:a+=2; case1: case2:a+=3; default:a+=5; } }

printf(\"%d\\n\}

A:31 B:13 C:10 D:20

14、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main() {int n,k;

float score,sum,ave; sum=0.0;

37

C语言练习题1

for(n=1;n<=10;n++) {for(k=1;k<=4;k++)

{scanf(\"%f\ ave=sum/4.0;

printf(\"NO%d:%f\\n\ } }

上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是___A___。

A:sum=0.0; B:sum+=score; C:ave=sum/4.0; D:printf(\"NO%d:%f\\n\15、有以下程序 main() { int i; for(i=0;i<3;i++) switch(i)

{ case 1: printf(\"%d\ case 2: printf(\"%d\ default: printf(\"%d\ } }

执行后输出的结果是__A____。

38

C语言练习题1

A:011122 B:012 C:012020 D:120 16、有以下程序 main() { int k=4,n=0; for( ; nif(n%3!=0) continue; k--; }

printf(\"%d,%d\\n\}

程序运行后的输出结果是___C___。 A:1,1 B:2,2 C:3,3 D:4,4 17、有以下程序 main()

{ char k; int i; for(i=1;i<3;i++) { scanf(\"%c\ switch(k)

{ case '0': printf(\"another\\n\"); case '1': printf(\"number\\n\"); } }

39

C语言练习题1

}

程序运行时,从键盘输入:01↙,程序执行后的输出结果是__C____。 A:another number B:another number another C:another number number D:number number 18、有以下程序 main() { int i,s=0;

for(i=1;i<10;i+=2) s+=i+1; printf(\"%d\\n\}

程序执行后的输出结果是___D___。

A:自然数1~9的累加和 B:自然数1~10的累加和 C:自然数1~9中奇数之和 D:自然数1~10中偶数之和 19、以下程序中,while循环的循环次数是 D

40

C语言练习题1

main() { int i=0; while(i<10) { if(i<1) continue; if(i= =5) break; i++; } }

A:1 B:10 C:6 D:死循环,不能确定次数20、以下程序的输出结果是 A main( ) { int a=0,i; for(i=1;i<5;i++) { switch(i) { case 0: case 3: a+=2; case 1: case 2: a+=3; default: a+=5; } }

printf(\"%d\\n\

41

C语言练习题1

}

A:31 B:13 C:10 D:20 21、以下程序的输出结果是 D main()

{int x=10,y=10,i; for(i=0;x>8;y=i )

printf(\"%d %d \",x--,y); }

A:10 1 9 2 B:9 8 7 6 C:10 9 9 0 D:10 10 9 0 22、以下程序的输出结果是 A main() {int i;

for(i=1;i<6;i++) {if(i%2)

{printf(\"#\");continue;} printf(\"*\"); }

printf(\"\\n\"); }

A:#*#*# B:##### C:***** D:*#*#* 23、以下程序的输出结果是 D main()

42

C语言练习题1

{int i;

for(i='A';i<='I';i++)printf(\"%c\",i+32); printf(\"\\n\"); }

A:编译不通过,无输出 B:aceg C:acegi D:abcdefghi 24、设x和y均为int型变量,则执行以下的循环后,y值为 C for(y=1,x=1;y<=50;y++) {if(x= =10) break; if (x%2= =1) {x+=5;continue;} x-=3; }

A:2 B:4 C:6 D:8

25、设j为int型变量,则下面for循环语句的执行结果是 B For (j=10;j>3;j--) {if(j%3) j--; --j;--j;

printf(\"%d \",j); }

A:6 3 B:7 4 C:6 2 D:7 3 26、有以下程序 D main()

43

C语言练习题1

{int x, i; for(i=1;i<=50;i++) {x=i; if(x%2= =0)

{ x++; if(x%3= =0) { x++; if(x%7= =0)

{ x++; printf(\"%d \} } 输出结果是

A:28 B:27 C:42 D:26 27、以下程序段的输出结果是___D____ int k, j , s ; for(k=2;k<6;k++,k++) { s=1;

for (j=k;j<6;j++)s+=j; }

printf(\"%d\\n\

A:9 B:1 C:11 D:10

28、以下程序段的输出是 C int i,j,m=0; for (i=1;i<=15;i+=4)

44

C语言练习题1

for (j=3;j<=19;j+=4) m++; printf(\"%d\\n\

A:12 B:15 C:20 D:25 29、以下循环体的执行次数是 C main() { int i,j;

for(i=0,j=1; i<=j+1; i+=2, j--)printf(\"%d \\n\}

A:3 B:2 C:1 D:0

30、下列程序运行后的输出结果是__D____。 Main()

{int n[3],t,j,k; for(t=0;t<3;t++) n[t]=0; k=2;

for(t=0;tprintf(\"%d\\n\ A:2 B:1 C:0 D:3 31、有以下程序 main()

45

C语言练习题1

{ int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0; i<3; i++) { printf(\"%d \}

执行后输出结果是___C___。

A:4 5 6 B:2 5 8 C:3 6 9 D:7 8 9 32、有以下程序 main()

{int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0;

for(i=0;i<4;i++) s+=aa[i][1]; printf(\"%d\\n\}

程序运行后的输出结果是___B__。 A:11 B:19 C:13 D:20 33、有如下程序, main()

{int n[5]={0,0,0},j,k=2; for(j=0;j46

C语言练习题1

该程序的输出结果是____D_____。 A:不确定的值 B:2 C:1 D:0 第四节while、do while语句 1.while语句 1、有以下程序段

int k=0; while(k=1) k++;

while循环执行的次数是 ( A A) 无限次 B)有语法错,不能执行 C) 一次也不执行行1次

2.语句while(!E);中的条件!E等价于 ( A ) 。 A)E = = 0 B)E!=1 C)E!=0 D)~E 3、以下程序的输出结果是__A____。 main() { int n=4;

while(n--)printf(\"%d \}

A:2 0 B:3 1 C:3 2 1 D:2 1 0 4、有如下程序 main() {

int n = 9;

47

执) D) C语言练习题1

while(n>6) { n--;

printf(\"%d\ } }

该程序的输出结果是___B___。 A:987 B:876 C:8765 D:9876

6、t为int类型,进入下面的循环之前,t的值为0, while(t=1) { ......}

则以下叙述中正确的是___B___。

A:循环控制表达式的值为0 B:循环控制表达式的值为1 C:循环控制表达式不合法 D:以上说法都不对 7、以下程序的输出结果是__C____。 main()

{ int num=0; while(num<=2)

{ num++; printf(\"%d\\n\ }

A) B) C) D) 1 1 1 1

48

C语言练习题1

2 2 2 3 3 4

A:A) B:B) C:C) D:D)

8、以下程序中,while循环的循环次数是__D____。 main() {int i=0; while(i<10)

{ if(i<1) continue; if(i==5)break; i++; } ...... }

A:1 B:10 C:6 D:死循环,不能确定次数 9.以下程序的输出结果是___B___。 #include main() { int i=0,a=0; while(i<20) { for(;;)

{ if((i%10)==0) break;

49

C语言练习题1

else i--; }

i+=11; a+=i; }

printf(\"%d\\n\}

A:21 B:32 C:33 D:11 10、有以下程序 main()

{ int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i]; i++;} printf(\"%d\\n\}

执行后输出的结果是__D____。 A:58 B:56 C:45 D:24

13、运行以下程序后,如果从键盘上输入china#《回车》,则输出结果为#include main()

{int v1=0,v2=0; char ch ;

while ((ch=getchar())!='#') switch (ch )

50

C C语言练习题1

{case 'a': case 'h': default:v1++; case '0':v2++; }

printf(\"%d,%d\\n\",v1,v2);} A:2,0 B:5,0 C:5,5 D:2,5 14、下面程序的输出是__D__ main()

{int x=3,y=6,a=0; while (x++!=(y-=1)) { a+=1;

if (yprintf(\"x=%d,y=%d,a=%d\\n\}

A:x=4,y=4,a=1 B:x=5,y=5,a=1 Cx=5,y=4,a=1 15、定义如下变量: int n=10

则下列循环的输出结果是___A___

51

:x=5,y=4,a=3 D:C语言练习题1

while (n>7) { n--;

printf(\"%d\\n\} A:9

8 7 B:9 C:8

7 6 D:9

2.Do while语句

1、对do...while语句错误的描述是:( C ) A.可构成多重循环结构 B. 循环次数不可能为0 C.循环次数可能为0 D. 先执行后判断 2、C语言中下列叙述正确的是____D____。 A、不能使用do…while语句构成循环

B、do…while语句构成的循环,必须用break语句才能退出

C、do…while语句构成的循环,当while语句中的表达式值为非零时结束循环

D、do…while语句构成的循环,当while语句中的表达式值为零时结束

52

C语言练习题1

循环

3. 以下程序段的输出结果是 int x=3; do {

printf(\"%3d\} while(!(--x));

A) 1 B) 3 0 C) 1 -2 D) 死循环 4、下面的程序 main() { int x=3; do{

printf(\"%d\\n\ }while(!(--x) );

} ___B___。

A:输出的是1 B:输出的是1和-2 C是死循环 5、执行下面程序片段的结果是__B____。 int x=23; do {

printf(\"%2d\

53

:输出的是3和0 D:

C语言练习题1

}

while(!x); A:打印出321 B:打印出23 C:不打印任何内容 D:陷入死循

环 6、有以下程序段 int n=0,p;

do {scanf(\"%d\此处do-while循环的结束条件是__D____。

A:p的值不等于12345并且n的值小于3 B:p的值等于12345并且n的值大于等于3

C:p的值不等于12345或者n的值小于3 D:p的值等于12345或者n的值大于等于3 7、有以下程序 main()

{ int i=0,s=0; do{

if(i%2){i++;continue;} i++; s+=i; } while(i<7); printf(\"%d\\n\}

C语言练习题1

执行后输出的结果是___A___。 A:16 B:12 C:28 D:21 8、有以下程序段 int x=3 do

{ printf (\"%d\while (!(--x)); 其输出结果是 C

A:1 B:3 0 C:1 -2 D:死循环

9、假定a和b为int型变量,则执行以下语句后b的值为 D a=1;b=10; do

{b-=a; a++;} while (b--<0);

A:9 B:-2 C:-1 D:8 第五节break语句和continue语句

1、在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是: C

A:switch B:continue C:break D:if 第四章 数组 第二节 一维数组

1、在Turbo C中,设int a[10];假设数组a开始于内存2000单元,则a[2]的存储始于 ( B )

55

C语言练习题1

A) 2002 B) 2004 C) 2006 D)2008 2、在C语言中,引用数组元素时,其数组下标的数据类型允许是 ( C )

A) 整型常量 B) 整型表达式 C)整型常量或整型表达式 D)任何类型的表达式

3、若有int s[4] = {1,2,3,4};,则s[s[0]+2*s[2]-s[3]] 的值是( D )

A) 1 B) 2 C) 3 D) 4 4.

static

char

x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\\0′};那么( A )

A.x数组的长度等于y数组的长度 B.x数组的长度大于y数组的长度

C.x数组的长度少于y数组的长度 D.x数组与y数组的存储区域相同

5、以下程序的输出结果是___B___。 main()

{ int i, k, a[10], p[3]; k=5;

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

for(i=0;i<3; i++) p[i]=a[i*(i+1)]; for(i=0;i<3; i++) k+=p[i]*2; printf(\"%d\\n\

56

C语言练习题1

}

A:20 B:21 C :22 D:23 6、以下定义语句中,错误的是______。

A:int a[]={1,2}; B:char *a[3]; C:char s[10]=\"test\"; D:int n=5,a[n];

7、以下程序的输出结果是___C___。 main()

{ int i,a[10];

for(i=9;i>=0;i--) a[i]=10-i; printf(\"%d%d%d\}

A:258 B:741 C:852 D:369

8、设int a[][4]={1,2,3,4,5,6,7,8,9};则数组a的第一维的大小是 B

A:2 B:3 C:4 D:无确定值

9、要说明一个有10个int 元素的数组,应当选择语句 A

A:int a[ 10 ]; B:int a[ 2, 5 ] C:int a[ ]; D:int *a[ 10 ]; 10、若有以下说明语句:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g;

则数值为4的表达式是_____D_____。

A:a[g-c] B:a[4] C:a['d'-'c'] D:a['d'-c]

57

C语言练习题1

11、假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4};

则数组x在内存中所占字节数为___D___。 A:3 B:6 C:10 D:20

12、以下能正确定义数组并正确赋初值的语句是__D____。

A:int N=5,b[N][N]; B:int a[1][2]={{1},{3}}; C:int c[2][]= {{1,2},{3,4}}; D:int d[3][2]={{1,2},{34}}; 13、以下能正确定义一维数组的选项是_____B___________。 A:int num[]; B:#define N 100 int num[N];

C:int num[0..100]; D:int N=100; int num[N]; 第三节 数组

1、下列语句中,不正确的是( D )。

A. static int a[2][3] = {1 , 2 , 3 , 4 , 5 , 6}; B. static int a[2][3] = {{1}, { 4 , 5}};

C. static int a[ ][3] = {{1}, {4}}; D. static int a[ ][ ] = {{1 , 2 , 3 }, {4 , 5 , 6}};

2.设int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句 for(i=0;i<3;i++) printf(″%d″,x[i][2-i]);

58

C语言练习题1

的输出结果是( C )

A.147 B.159 C.357 D.369

3. 若有定义语句:int a[3][6]; 按在内存中的存放顺序,a数组的第10

个元素是____B____。

A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4] 4、有以下程序 main()

{ int m[][3]={1,4,7,2,5,8,3,6,9}; int i,j,k=2; for(i=0;i<3;i++)

{ printf(\"%d \}

执行后输出结果是__C____。

A:4 5 6 B:2 5 8 C:3 6 9 D:7 8 9 第四节 字符数组

1、对字符串“Cat”进行完整赋值的操作是 ( B )

A) char s[3] = {'C', 'a', 't'}; B) char s[] = \"Cat\"; C) char s[3] = {\"Cat\char s[3]; s= \"Cat\";

2. 以下程序的输出结果是 ( A ) 。 # include

59

C语言练习题1

# include main() {

char str[12]={'s','t','r','i','n','g'}; printf(\"%d\\n\}

A) 6 B) 7 C) 11 D) 12

3.、以下程序的输出结果是 ( B )

main()

{ char ch[3][5]={ \"AAAA\ printf(“%s”,ch[1]); }

A) \"AAAA\" B) \"BBB\" C) \"BBBCC\" D) \"CC\" 4、下列描述中不正确的是___C___。 A:字符型数组中可以存放字符串 B:可以对字符型数组进行整体输入、输出 C:可以对整型数组进行整体输入、输出

D:不能在赋值语句中通过赋值运算符\"=\"对字符型数组进行整体赋值 5、以下程序段的输出结果是:___A___。 char s[]=\"\\\\141\\141abc\\"; printf(\"%d\\n\

60

C语言练习题1

A:9 B:12 C:13 D:14 6、有以下程序 main()

{ char s[]=\"\\n123\\\\\";

printf(\"%d,%d\\n\}

执行后输出结果是____C__。

A:赋初值的字符串有错 B:6,7 C:5,6 D:6,6 7、为了判断两个字符串s1和s2是否相等,应当使用 D A:if (s1= =s2) B:if (s1=s2)

C:if ( strcpy (s1,s2)) D:if ( strcmp( s1,s2)= =0 ) 9、不能把字符串\"Hello!\"赋给数组b的语句是___B____。 A:char b[10]={'H','e','l','l','o','!'}; B:char b[10];b=\"Hello!\";

C:char b[10]; strcpy(b,\"Hello!\"); D:char b[10]=\"Hello!\"; 10、若有以下程序段: char str[]=\"ab\\n\\012\\\\\\\"\"; printf(\"%d\该程序段的输出结果是_____C____。 A:3 B:4 C:6 D:12

11、设已定义char x[8]和int j,为了给该数组赋值,下面语句中正确的

61

C语言练习题1

是___D____-。

A:x[8]=\"Turbo C\"; B:x=\" Turbo C\";

C:x[]=\"Turbo C\"; D:for(j=0;j<7;j++) x[i]=getchar(); 12、以下程序段的输出结果是____A____ char s[]=\"\\\\141\\141abc\\"; printf (\"%d\\n\ A:9 B:12 C:13 D:14

13、下列选项中正确的语句组是______D________。

A:char s[8]; s={\"Beijing\:char *s; s={\"Beijing\ C:char s[8]; s=\"Beijing\"; D:char *s; s=\"Beijing\"; 14、下列合法的数组定义是____D_____。

A:int a[]=\"string\"; B:int a[5]={0,1,2,3,4,5}; C:char a=\"string\"; D:char a[]={0,1,2,3,4,5}; 第五章 函数 第一节 函数定义

1. 以下正确的函数定义形式是( 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); 2、设有函数定义

int fun(int vx) {return vx+3.6;} 则 fun(2.7)的值是_____A_____。

A、5 B、出错 C、6.3 D、6 3.在C语言中,( B )。

A)函数定义可以嵌套,但函数调用不能嵌套

62

C语言练习题1

B)函数定义不可以嵌套,但函数调用可以嵌套 C)函数定义和调用均不能嵌套 D)函数定义和调用均可以嵌套

4.下面函数定义有错误的是( C )

A.f1(x1,x2) B.f1(x1,x2) int x1,x2; int x1;int x2;

{函数体} {函数体} C.f1(int x1,x2) D.f1(int x1,int x2) {函数体} {函数体} 5、以下叙述中正确的是___A___。

A:构成C程序的基本单位是函数 B:可以在一个函数中定义另一个函数

C:main()函数必须放在其它函数之前 D:所有被调用的函数一定要在调用之前进行定义

6、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是____B__。

A:void B:int C:float D:double 7、若程序中定义了以下函数 double myadd(double a,double b) {return(a+b);}

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项

63

C语言练习题1

中错误的说明是___A___。

A:double myadd(double a, b); B:double myadd(double,double);

C:double myadd(double b, double a); D:double myadd(double x, double y);

8、以下错误的描述是( D)

A:不同函数中可以使用相同的变量名 B:形式参数是局部变量

C:一个函数内部定义的变量只能在本函数范围内有效

D:在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 9、以下正确的说法是: 建立函数的目的之一是: B

A:提高程序的执行效率 B:提高程序的可读性 C:减少程序的篇幅 D:减少程序文件所占内存 10、以下正确的说法是: B

A:用户若需调用标准函数,调用前必须重新定义

B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C:系统根本不允许用户重新定义标准函数

D:用户若需要调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 11、以下错误的描述是: 函数调用可以 D

C语言练习题1

A:出现在执行语句中 B:出现在一个表达式中 C:作为一个函数的实参 D:作为一个函数的形参 12、以下正确的说法是: B

A:函数的定义可以嵌套,但函数的调用不可以嵌套 B:函数的定义不可以嵌套,但函数的调用可嵌套 C:函数的定义和调用均不可以嵌套 D:函数的定义和调用均可以嵌套 第二节 函数的运用 1. 函数的调用

1. 以下程序的输出结果是( A ) 。 # include main() {

int k=4,m=1,p;

p=func(k,m); printf(\"%d,\}

func(int a,int b) {

static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }

65

C语言练习题1

A) 8,17 B) 8,16 C) 8,20 D) 8,8 2、设有以下函数; f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c); }

如果在下面的程序中调用该函数,则输出结果是__A____。 main()

{ int a=2, i;

for(i=0;i<3;i++) printf(\"%d\\n\ }

A) B) C) D) 7 7 7 7 8 9 10 7 9 11 13 7 A:A) B:B) C:C) D:D) 3、以下程序的结果是___B___。 int a,b; void fun()

{ a=100; b=200; }

66

C语言练习题1

main()

{ int a=5,b=7; fun();

printf(\"%d%d\\n\ }

A:100200 B:57 C:200100 D:75 4、以下程序的输出结果是___D___。 int f( )

{ static int i=0; int s=1; s+=i; i++; return s; } main() { int i,a=0;

for(i=0;i<5;i++) a+=f( ); printf(\"%d\\n\}

A:20 B:24 C:25 D:15 5、有以下程序 int f1(int x,int y) { return x>y?x:y; }

67

C语言练习题1

int f2(int x,int y) { return x>y?y:x; } main()

{int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b); e=f2(e,c); f=a+b+c-d-e;

printf(\"%d,%d,%d\\n\}

执行后输出的结果是___C___。

A:3,4,5 B:5,3,4 C:5,4,3 D:3,5,4 2. 参数传递

1、用数组名作为函数的实参时,传递给形参的是( A )

A) 数组的首地址 B) 数组的第1个元素 C) 数组中的全部元素 D) 数组的元素个数

2.若数组名作实参而指针变量作形参,函数调用实参传给形参的是 (D ) A.数组的长度 B.数组第一个元素的值C.数组所有元素的值 D.

数组第一个元素的地址 3、有以下程序 void swap1(int c[]) { int t;

t=c[0];c[0]=c[1];c[1]=t;

68

C语言练习题1

}

void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t;} main( )

{ int a[2]={3,5},b[2]={3,5}; swap1(a); swap2(b[0],b[1]);

printf(\"%d %d %d %d\\n\}

其输出结果是____B___。

A:5 3 5 3 B:5 3 3 5 C:3 5 3 5 D:3 5 5 3 第三节 变量的作用域与生存期 1.下列叙述中正确的是___D___。 A:C语言编译时不检查语法 B:C语言的子程序有过程和函数两种 C:C语言的函数可以嵌套定义

D:C语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数

2、在函数内,定义变量时存储类型符可省略的是___A___。 A:auto B:static C:extern D:register 3、以下正确的说法是:

如果在一个函数中的复合语句中定义了一个变量,则该变量 A

69

C语言练习题1

A:只在该复合语句中有效 B:在该函数中有效 C:在本程序范围中均有效 D:为非法变量 第六章 指针 第一节 指针的含义

1.变量的指针含意是指变量的 ( B)

A.值 B.地址 C.存储 D.名字 第二节 指针变量

1.设int a,*p;则语句p=&a;中的运算符“&”的含义是( D ) A.位与运算 算

C.取指针内容

D.取变量地址 B.逻辑与运

1..设有定义:int n1=0,n2,*p=&n2,*q=&n1; 以下赋值语句中与n2=n1;语句等价的是( A )

A.*p=*q; B.p=q; C.*p=&n1; D.p=*q; 2、设定义 int k,*pk; 则下面正确的赋值表达式是___B_____。

A、*pk = &k B、pk = &k C、pk = k D、*pk = *k 3、以下程序段 int x=123; int *px; px=&x; *px=116 ;

则 x的值是____C_____。

A、出错 B、123 C、116 D、239 4、以下定义语句中正确的是__C____。

70

C语言练习题1

A:char a='A'b='B'; B:float a=b=10.0; C:int a=10,*b=&a; D:float *a,b=&a;

5、已有定义:int i,a[10],*p;,则合法的赋值语句是__D____。 A:p=100; B:p=a[5]; C:p=a[2]+2; D:p=a+2;

6、若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是___D___。 A:p=q; B:*p=*q; C:n=*q; D:p=n; 第三节 指针与数组 1、以下程序段

int a[10] = {2,4,6,8,10,1,3,5,7,9},*p=a; printf (“%d”,*(p + 5)); 的输出是____A_____。

A、1 B、出错 C、10 D、5 2. 下面程序的输出是 A main() {

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(\"%d\\n\}

A) 3 B) 4 C) 1 D) 2

3. 设int b[ ]={1,2,3,4},y,*p=b;

则执行语句y=*p++;之后,变量y的值为( A ) A.1 B.2 C.3 D.4

71

C语言练习题1

4、有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b; b=p[5];

b中的值是____D______。 A:5 B:6 C:8 D:9 第七章 结构体与其他构造数据类型 第一节 结构体 1、设有以下说明语句

struct stu { int a; float b; } stutype;

则下面的叙述不正确的是 ( C )

A) struct是结构体类型的关键字 B) struct stu是用户定义的结构体类型

C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名 2、以下选项中,能定义s为合法的结构体变量的是___B___。 A:typedef struct abc { double a; char b[10]; } s;

B:struct

72

C语言练习题1

{ double a; char b[10]; }s;

C:struct ABC { double a; char b[10]; } ABC s;

D:typedef ABC { double a; char b[10]; } ABC s; 3、有如下定义

struct person{char name[9]; int age;}; struct person class[10] = { \"John\ \"Paul\ \"Mary\ \"Adam\

根据上述定义,能输出字母M的语句是___D___。 A:printf(\"%c\\n\:printf(\"%c\\n\

73

C语言练习题1

C:printf(\"%c\\n\:printf(\"%c\\n\4、设有以下说明语句 struct ex

{ int x; float y;char z; } example; 则下面的叙述中不正确的是___B___。

A:struct是结构体类型的关键字 B:example是结构体类型名 C:x,y,z都是结构体成员名 D:struct ex是结构体类型 第七节 共用体 1、有以下程序 main()

{ union{ unsigned int n; unsigned char c; }ul; ul.c='A';

printf(\"%c\\n\}

执行后输出结果是___C___。

A:产生语法错 B:随机值 C:A D:65

74

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务