您好,欢迎来到九壹网。
搜索
您的当前位置:首页c语言试题库

c语言试题库

来源:九壹网
C程序设计试题库

C程序设计试题库

一、单项选择题

1.C语言的程序是从 C 开始执行的。

A. 程序的第一条语句 B. 程序的第一个函数 C. 程序的main( )函数

D. 包含文件中的第一个函数

2.A’+6的结果是 D 。

A. “F” B. ’F’ C. “G” D. ’G’ 3.以下可以定义为用户合法标识符的是 A 。

A. maine

B. 0_0

C. 12abc

D. float

4.设int a=5;则表达式a<5&&--a>5的运算结果和a的值分别是 B 。

A. 0和4 B. 0和5 C. 1和4

D. 1和5 5.对于int a=97, b='b'; printf(“%c,%d”, a , b);的结果是: B 。

A. 97, b

B.a,98

C. 97,98

D. a,b

6.C程序设计的三种基本结构是_ B ___。

A. 递归结构,循环结构,转移结构 B. 顺序结构,选择结构,循环结构 C. 嵌套结构,递归结构,顺序结构

D. 循环结构,转移结构,顺序结构

7.以下不正确的if语句是 D 。

A. if(x>y) printf(\"%d\\n\

B. if(xC. if(x!=y) scanf(\"%d\D. if (x=y)&&(x!=0) x+=y;

8.当执行x=1; do { x=x*x; } while(x);程序段时,运行情况是 C 。

A. 循环体将执行一次 B. 循环体将执行两次 C. 循环体将执行无限次

D. 系统提示有语法错误

9.下面关于for循环的正确描述是 A 。

A. for循环的循环体可以是一个复合语句 B. for循环的循环体不能是一个空语句 C. for循环中,不能用break语句跳出循环体 D. for循环只能用于循环次数已经确定的情况 10.以下叙述正确的是 B 。 A. continue语句的作用是结束整个循环的执行 B. 只能在循环体内和switch语句体内使用break语句

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

11.若有定义语句:int b; char c[10]; ,则下面正确的输入语句是 B 。

A. scanf(\"%d%s\ B. scanf(\"%d%s\ C. scanf(\"%d%s\

D. scanf(\"%d%s\

12.设有数组定义:char array[]=\"China\";则数组array所占的存储空间为 C 。

A. 4个字节 B. 5个字节 C. 6个字节 13.以下叙述中,不正确的是 D 。

第 1 页 共 36 页

D. 7个字节

C程序设计试题库

A. 函数未被调用时,系统将不为形参分配内存单元 B. 实参与形参的个数应相等,且类型相同或赋值兼容 C. 实参可以是常量、变量或表达式 D. 形参可以是常量、变量或表达式 14.以下数组定义中不正确的是 D 。

A. int a[2][3];

B. int b[][3]={0,1,2,3};

D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

C. int c[100][100]={0};

15.若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是 A 。

A. q=a;

B.*p=*q;

C.a=*q;

D.p=q;

16.以下叙述不正确的是 D 。

A. 在C程序中,源程序均由若干个函数组成 B. 在C程序中,总是从main()函数开始执行 C. 在C程序中,%运算符只能用于整数的运算 D. 在C程序中,main()函数必须放在程序的开始部分 17.a=b+=c+5,若b=1,c=2,则a的值是 C 。

A. 1

B. 7

C. 8

D. 出错

18.以下可以定义为用户合法标识符的是 A 。

A. C_1

B. 1_C

C. int

D. char

19.设 a=5, b=6, c=7, d=8, m=2, n=2, 执行 (m=a>b)&&(n=c>d)后n的值为 B 。

A.1

B.2

C.3

D.4

20.scanf( )函数的地址表列是用 B 符号加上变量名表示变量的地址。

A. @

B. &

C. #

D. !

21.关于运算符优先顺序描述中正确的是 C 。

A. 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符 B. 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符 C. 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符 D. 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符

22.在C语言中,if语句的圆括号内用以决定分支流程的表达式 D 。

A. 只能用逻辑表达式 C. 只能用逻辑表达式或关系表达式

B. 只能用关系表达式 D. 可以用任意表达式

23.有定义int t=0;程序段while( t = =1 ){ ……},则以下叙述中正确的是 A 。

A. 循环控制表达式的值为0 C. 循环控制表达式不合法

B. 循环控制表达式的值为1 D. 以上说法都不对

24.对于for(表达式1;;表达式3)可理解为 B 。

A.for(表达式1;0;表达式3)

B.for(表达式1;1;表达式3) D. for(表达式1;表达式3;表达式3)

C. for(表达式1;表达式1;表达式3) 25.以下叙述正确的是 B 。

A. continue语句的作用是结束整个循环的执行

第 2 页 共 36 页

C程序设计试题库

B. 只能在循环体内和switch语句体内使用break语句 C. 在循环体内使用break语句或continue语句的作用相同 D. 从多层循环嵌套中退出时只能使用goto语句

26.设有数组定义:char array[10]= \"China\";则数组array所占的存储空间为 D 。

A. 4个字节

B. 5个字节

C. 6个字节

D. 10个字节

27.若有char c[6]={‘c’,’d’,’\\0’,’e’ ’f’,’\\0’};则执行语句printf(“%s”,c);结果是__ C __。 A. cd\\0e f

B. ‘c’’d’

C. cd

D. cd ef

28.对于C语言的函数,下列叙述中正确的是 A 。

A. 函数的定义不能嵌套,但函数调用可以嵌套 B. 函数的定义可以嵌套,但函数调用不能嵌套 C. 函数的定义和调用都不能嵌套 D. 函数的定义和调用都可以嵌套 29.合法的数组定义是 D 。

A. int a[6]={\"string\C. char a={\"string\

B. int a[5]={0,1,2,3,4,5}; D. char a[]={0,1,2,3,4,5};

30.若声明:int a, b, c, *d=&c;,从键盘读入三个整数分别赋给变量a、b、c,正确的语句是 A 。

A. scanf(\"%d%d%d\ C. scanf(\"%d%d%d\

B. scanf(\"%d%d%d\D. scanf(\"%d%d%d\

31.十进制数1000对应八进制数和十六进制数分别为 A 。

A. 1750,3e8 A.double

B.1752,3d8 B._total

C.1750,3c8 C.sizeof

D.1752,3b8 D.3D

32.下列合法的变量名是 B 。

33.设有int x=17;则表达式(x++*1/3)的值是 B 。

A. 4

B. 5

C.14

D.15

34.设变量f是单精度型,i是双精度型,则表达式10+’a’+i*f的值的数据类型为 B 。

A.int

B.double

C.float

D.char

35.在C语言中,if语句用以决定分支的流程的表达式 D 。

A.只能用逻辑表达式

B.只能用关系表达式 D.可以用任意表达式

C.只能用逻辑表达式或关系表达式

36.循环控制语句for(x=0,y=0;(y!=99)&&(x<=4);x++); 最多可执行 C 次。

A.3

B.4

C.5

D.6

37.有定义int t=0;程序段while( t = =2 ){ ……},则以下叙述中正确的是 A 。

A.循环控制表达式的值为0 C.循环控制表达式不合法

B.循环控制表达式的值为1 D.以上说法都不对

38.执行语句: for(j=1;j++<=9;);后,变量j的值是 C 。

A.8

B.9

C.10

D.不确定

39.在定义int a[3][4]; 之后,对a的引用正确的是 C 。

A.a[2][4]

B.a[1,3]

C.a[0][3]

D.a[3][0]

40.下面合法的数组定义是 B 。

第 3 页 共 36 页

C程序设计试题库

A.int a[]=\"string\";

B.char a[]=\"china\"; D.int s=\"string\";

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

41.判断字符串 s1 是否大于字符串 s2,应当使用 D 。 A. if( s1>s2 )

B. if( strcmp(s1,s2)<0) D. if(strcmp(s1,s2)>0)

C. if(strcmp(s2,s1)>0)

42.在函数的定义格式中,下列可以省略的部分是 D 。

A.函数名 C.函数类型

B.函数体 D.函数参数

B.返回值以return语句中表达式值的类型为准 D.编译不通过

43.如果函数的类型和return语句中表达式的值的类型不一致,则 A 。

A.返回值的类型以函数类型为准 C.返回值的类型不能确定

44.若有说明:int b=2, *p=&b, *q=p;,则以下非法的赋值语句是 D 。

A.p=q;

B.*p=*q;

C.b=*q;

D.q=b;

45.定义 int a[]={2,4,6,8,10,12},p=&a; 则*(p+5) 的值是 D 。

A.6

B.8

C.10

D.12

46.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 B 。

A.地址传递

B.单向值传递

D.传递方式由用户指定

C.双向值传递

47.函数返回值的类型应由 C 决定。

A.return语句中的表达式类型 C.定义函数所指定的类型

B.调用该函数的主调用函数类型 D.实参的类型

48.一个函数无返回值时,应选择下列的类型说明符是 C 。

A.static

B.extern

C.void

D.无说明符

49.若有语句int *p, a=10; p=&a; 下面均代表地址的一组选项是 C 。

A.a, p, *&a

A.*p+9

B.&*a, &a, *p

B.*(p+8)

C.&a, &*p, p

C.*p+=9

D.*&p, *p, &a

D.p+8

50.定义 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 B 。

51.十进制数2000相当十六进制数 D 。

A.7D3

B.7D2

C.7D1

D.7D0

52.下列选项中,不能用作标识符的是 D 。

A._2char_

B._char_2

C.char_2_

D.2_chart_

53.下列表达式的值为0的是 B 。

A.3﹪5

B.3/5

C.3.0/5

D.3<5

54.设变量m是单精度型,n是双精度型,则表达式10+’a’+m*n的值的数据类型为 B 。

A.int

B.double

C.float

D.char

55.x为奇数时值为“真”,x为偶数时值为“假”的表达式为 C 。

A.!(x%2==1)

B. x%2==0

C. x%2

D.!(x%2)

56.C语言中while和do-while循环的主要区别是 A 。

第 4 页 共 36 页

C程序设计试题库

A.do-while的循环体至少无条件执行一次

B. while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句

57. for语句的一般形式如下: for(表达式1;表达式2;表达式3) 语句 ;,表示循环条件的是 B 。

A.表达式1

B.表达式2

C.表达式3

D.语句

58.以下对二维数组a 的正确定义的是 C 。

A.int a[3][];

B.float a(3,4);

C.double a[1][4];

D.float a(3)(4);

59.调用strlen(“abcd\\0ef\\0g”)的返回值为 A 。

A.4

B.5

C.8

D.9

60.函数调用:strcat(strcpy(str1,str2),str3)的功能是 C 。

A.将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1之后再将串str1复制到串str3中

61.C99建议把main函数指定为int型,因此main函数的最后都应该加上一个 B 语句。

A. return 1 A.A和B

B.return 0 B.8和16

C.void C.0和1

D.sum D.&和#

62.从根本上说,计算机只能识别由 C 组成的指令。 3.设有int c,f=33;c=(5/9)*(f-32);则最终c的值是 C 。

A. 0.555555

B. 1

C.0

D.1.555555

.下列哪个语句是非法的 B 。

A.int a=1;

B.float 2c=6.2;

C.char _ab=’c’;

D.float a,b=2.34;

65.在C语言中,if语句用以决定分支的流程的表达式 D 。

A.只能用逻辑表达式

B.只能用关系表达式 D.可以用任意表达式

C.只能用逻辑表达式或关系表达式

66.在C语言中,转义字符是由 D 符号开头的字符常量。

A.#

B.& B.55

C.?

D.\\

D.以上结果都不对

67.有下列语句:int a=55;a++;,则最终变量a的值为 A 。

A.56

C.54

68.负整数是以 C 形式存放在计算机内存中的。

A.原码

B.ASCII码

C.补码

D.莫尔斯码

69.在定义int a[2][3]; 之后,对a的引用正确的是 C 。

A.a[2][3]

B.a[1,2]

C.a[1][2]

D.a[2][0]

70.下面合法的数组定义是 B 。

A.int a[5]=\"boy\";

B.char a[6]=\"girl\"; D.int s=\"string\";

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

71.int a=5;a+=3;,则最终a的值为 A 。 A. 8

B. 5

C. 3

D. 10

第 5 页 共 36 页

C程序设计试题库

72.在输出小数的时候,如果只想保留3位小数,应该用下列哪个格式字符输出形式? C 。

A.%f

B.%5.4f B.for语句

C.%.3f

D.%3d D.if语句

73.C语言中拥有跳出switch结构和跳出循环体双重功能的语句为 C 。

A.continue语句

C.break语句

74.数组名作为函数实参时,向形参传递的是数组首元素的 D 。

A.数值

B.大小

C.名字

D.地址

75.某些局部变量的值在函数调用结束后不消失而继续保留原值,这种局部变量称为 A 变量。

A.static

B.auto

C.register

D.extern

76.下面合法的数组定义是 A 。

A.char a[5]=\"boy\";

B.char a[3]=\"girl\"; D.int ss=\"china\";

C.int c[4]={0,1,2,3,4,5};

77.在C语言中,能代表逻辑值\"真\"的是 A 。 A.非0的数

B.非0整数

C.大于0的数

D.true

78.在输出小数的时候,如果只想保留4位小数,应该用下列哪个格式字符输出形式? B 。

A.%f

B.%5.4f B.十六进制

C.%2.3f

D.%3d D.八进制

79.数据在内存中是以 C 形式存放的。

A.十进制

C.二进制

80.在VC编译系统中,7/2的值为多少 A 。

A.3

B.3.5

C.不确定的数值

D.4

81. C语言可执行程序的开始执行点是 C 。

A.程序中第一条可执行语句 C.程序中的main函数

B.程序中第一个函数 D.包含文件中的第一个函数

82.下列合法的变量名是 B 。

A.123

B._total

C.int

D.3D

83. 在以下运算符中,优先级最高的运算符是 C 。 A.<=

B.=

C.%

D.&&

84.下列赋值语句中不正确的是 B 。

A. a++;

B.a= =b;

C.a+=b;

D. a=1,b=1;

85.在C语言的if语句中,用作判断的表达式为 D 。

A.只能用逻辑表达式

B.只能用关系表达式 D.可以用任意表达式

C.只能用逻辑表达式或关系表达式

86.字符型数据在微机内存中的存储形式是 B 。

A.原码 A.12

B.ASCII码 B.11

C.补码 C.10

D.莫尔斯码 D.以上结果都不对

87.有下列语句:int a=11;a++;,则最终变量a的值为 A 。

88.函数定义的缺省类型为 C 。

A.void

B.float

C.int

D.char

.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 B 。

A.static

B.auto

C.register

D.extern

第 6 页 共 36 页

C程序设计试题库

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

B.68

C.不确定的数值

D.’C’

二、填空题

1.如果程序中调用了printf函数,则需要预处理命令 #include 。 2.已知x=3,y=2,则表达式x*=y+8的值为 30 。

3.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是 0 。 4.C语言表达式!(3<6)||(4<9)的值是 1 。 5.用来引用特定数组元素的数字称为 下标 。 6.定义int a[2][3];表示数组a中的元素个数是 6 个。 7.字符串比较的库函数是 strcmp ,只写函数名即可。

8.C语言中一个函数由 函数首部 和 函数体 两部分组成。

9.若有定义 int a[]={0,1,2,3},*p=&a[2]; 则 *(--p)的值是 1 。 10.若有定义 int a[]={2,4,6,8,10,12},*p=a; 则*(p+5) 的值是 12 。

11.在C语言中,格式输入操作是由库函数 scanf 完成的,格式输出操作是由库函数 printf 完成的。 12.在C语言中,说明变量为双精度的关键字是 double 。

13. 若有定义int a=10,则printf(\"%d, \\n\;语句的输出结果是 9 。 14. int x=2,y=3,z=4; 则表达式!(x+y)15.设int i = 5;则循环语句while(i>=1)i--;执行后i的值为____0_____。 16.要将两个字符串连接成一个字符串,使用的函数是 strcat() 。 17.只能被定义它的函数内部所识别的变量称为 局部变量 。 18.字符串”dianxin”在存储器中占 8 个字节的空间。

19.若有语句char a[10]=\"windows\则n的值为 8 。 20.若有定义和语句:int a[4]={1,2,3,4},*p; p=&a[0]; ,则*p--的值是 1 。 21.C程序是由函数构成的,一个C程序中至少包含一个 主(main)函数 。 22.在VC++6.0编译环境下,double类型的数据在内存占 8 个字节。

23.若有定义float x=2.5,y=4.7; int a=7;,则表达式 x+a%3*(int)(x+y)%2/4 的值为 2.5 。 24.设x,y,z和k都是int型变量,则执行表达式:x=(y=2,z=4,k=6)后,x的值为 6 。 25.循环控制语句for(x=0,y=0;(y!=0)||(x<=5);x++); 最多可执行 6 次。 26.在循环体中,执行 break 语句能够立即结束本层循环,结束当前循环。

27.定义数组:int a[3][4]={{1,2},{0},{4,6,8,10}};a[1][3]的初值是 0 ,a[2][2]的初值是 8 。 28.判断字符串 s1 是否大于字符串 s2,用C语言应表示为 if(strcmp(s1,s2)>0) 。 29.若有定义:char s[20]=“windows8”, *ps=s;则*(ps+5)代表的字符是 w 。 30.定义数组“int a[3][4]={{1},{2},{3}};”,则a[1][1]元素的值为 0 。 31.程序设计的三种基本结构是顺序结构, 选择 结构和 循环 结构。 32.在VC++6.0编译环境下,char类型的数据在内存占 1 个字节。 33.若有定义 int x=3,y=2,z=1; 则表达式 z*=(x>y ? ++x :y++)的值是 4 。 34.若有定义int i=25;,循环语句while(i>=1)i- -;执行后i的值为 0 。 35.判断变量a、b的值均不为0的逻辑表达式为 a!=0&&b!=0(或其他等价表达式) 。

第 7 页 共 36 页

C程序设计试题库

36.在循环体中,执行 continue 语句能够立即结束本次循环,执行下一次循环。 37.C程序是由函数构成的,一个C程序中至少包含一个 主(main)函数 。 38.在VC++6.0编译环境下,int类型的数据在内存占 4 个字节。 39.C语言规定标识符只能由 字母 、 数字 和 下划线 组成。 40.若已知a=10,b=20,则表达式!(a41.字符串函数strlen的作用是:求出字符串的 长度(或实际长度或字符个数(不包含’\\0’)) 。 42.C语言的三大基本结构是: 顺序 结构、 选择 结构、 循环 结构。 43.假设变量a和b、t均为整型,借助t实现a、b中的值的交换,写出其实现交换的语句:

t=a 、 a=b 、 b=t 。

44.C语言中float类型的数据在内存占 4 个字节。

45.判断变量a、b的值均为0的逻辑表达式为 a=0&&b=0 。

46.C语言的源程序必须通过 编译 和 连接 ,然后才能被 执行 。 47.C源程序的基本单位是 函数 。

48.定义为void类型的函数,表示其没有 返回值 。 49.指针变量是把另一个变量的 地址(指针) 作为其值的变量。 50.被调用函数中的 return 语句用来把表达式的值传回给调用函数。 51.C语言表达式!(3<6)||(4<9)的值是 1 。

52.已知char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为 double(双精度) 。 53.设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是 9 。 54.设x,y,z和k都是int型变量,则执行表达式:x=(y=5,z=8,k=20)后,x的值为 20 。 55.设i为整型变量,则以下循环for(i=2;i!=0 ;)printf(“%d”,i--);执行的次数是: 2 。 56.定义数组:int a[3][4]={{1,2},{0,3},{4,6,8,10}};a[1][2]的初值是 0 ,a[2][1]的初值是 6 。 57.定义数组:char s[10]=”china”;,则printf(“%d”,strlen(s));的输出结果为 5 。

58.若有定义int x=123; 则printf(\"%d,%d,%d\\n\x/100, x/10%10 (或 x%100/10或其他结果正确的答案) ,x%10);,将x中的数值按照百位、十位、个位的顺序拆分并输出。

59.若有定义char a[]=\"windows\,则语句printf(\"%s\的输出结果是 windows8 。 60.若有定义:char s[20]=“student”, *ps=s;则*(ps+7)代表的字符是 \\0 。

61.已知char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为 double(双精度) 。 62.整型变量x的值为23,语句\"printf(″%o\\\\n″,x);\"的输出结果为 27\\n 。 63.在C语言中,运算符的优先级最低的是 逗号 运算符。

.用条件运算符将语句“if (a>b) c=a; else c=b;”转换成等价的C语句是: c=a>b?a:b; 。 65.循环控制语句for(x=0,y=0;(y!=99)&&(x<4);x++); 最多可执行 4 次。 66.执行循环结构或switch结构中的 break 语句能够立即退出该结构。

67.若有char c[5]={‘c’,’d’,’\\0’,’e’,’\\0’};则执行语句printf(“%s”,c);结果是 cd 。 68.被调用函数中的 return 语句用来把表达式的值传回给调用函数。 69.执行代码:int i = 3,*p; p = &i;则*p+3的值是 6 。

70.定义数组:char str[10]=”china”; char *p = str;,则printf(“%c”,*(p+3));的输出结果为 n 。

第 8 页 共 36 页

C程序设计试题库

71.C语言程序基本执行单位是 函数 。

72.在VC++6.0中定义变量 int x;则sizeof(x)的值为 4 。

73.设a,b,t 为整型变量,初值为a=20,b=10,执行完语句t=(a>b)?a:b后,t 的值是 20 。 74.定义变量double x=3.8,则(int)x的值为 3 。

75.设i为整型变量,执行for(i=0;i<10;i++);后变量i的值是 10 。 76.定义数组:int a[3][4]={{1 },{0,3},{2,4,6,8}}; a[2][1]的值是 4 。 77.定义变量int a=2,b;执行代码b = a++;,则变量b的值是 2 。 78.若有定义int x=12,y;,则表达式y=x+1,x+2,x+3;的结果是 15 。

79.若有定义char a[]=\"abce\,则语句printf(\"%d\的输出结果是 1 。 80.定义char s[20]= \"student\则通过 p=s; 可以将指针变量p指向数组s。 81.C语言程序的工作过程是编辑、 编译 、连接、运行。

82.C语言中为了正确计算表达式,需要考虑运算的 优先级 和结合方向。 83.定义变量int a = 2,b;,则表达式b=1/(float)a的结果是 0.5 。 84.在C语言中,以 \\0 作为字符串结束标志。 85.在C语言中,存储\"a\"需占用 2 个存储单元。 86.若int x=2,y=13,z=4 则表达式x87.若有char ch[5]={ 'c', 'd', '\\0', 'e', '\\0'};则执行语句printf(\"%s\结果是 cd 。 三、完善程序题

1.用指针法将输入两个数字由大到小顺序排列。 #include int main() {

int *p1,*p2,*p,a,b;

printf(\"please enter two integer numbers:\"); scanf(\"%d,%d\ p1=&a ; } p2=&b; if(a{p=p1; p1=p2 ;p2=p;} printf(\"a=%d,b=%d\\n\

printf(\"max=%d,min=%d\\n\ *p1,*p2 ); return 0; }

2.将一个2行3列的矩阵转置成3行2列的矩阵。 #include void main()

第 9 页 共 36 页

C程序设计试题库

{ int i,j,a[2][3], b[3][2] ; int row=2,col=3; for(i=0;iscanf(\"%d\ ; for(i=0;i3.把100~200之间不能被3整除的数输出。#include int main() {int n;

for(n=100; n<=200 ;n++) {if( n%3==0 ) continue ; printf(\"%4d\ printf(\"\\n\"); return 0; }

4.通过指针变量输出数组a的10个元素。 #include int main()

{ int i,a[10], *p=a ;

printf(\"please enter 10 integer numbers:\"); for(i=0;i<10;i++)

scanf(\"%d\ p++ ); p=a;

for(i=0;i<10;i++,p++) printf(\"%d \ *p ); printf(\"\\n\"); return 0; }

第 10 页 共 36 页

C程序设计试题库

5.求出200-300之间满足三个数字之积为42且三个数字之和为12的数并输出结果。 #include void main () {

int i;

int a,b,c;

for ( i=200;i<=300;i++ ) { }

6.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 #include void main() {

char string[81]; int i,num=0,word=0; char c;

gets(string); ; for(i=0;(c=string[i])!='\\0';i++) if(c==' ') word=0 ; else if(word==0)

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

7.编程实现,输出100-999之间所有的“水仙花数”。 #include void main() { {

int n; int a,b,c;

for(n=100; n<=999 ;n++)

a=n/100;

a=i/100;

b= i/10-a*10;(i/10%10) ; c=i%10;

if ( (a+b+c==12)&&(a*b*c==42) ) }

printf (\"%d\\n\

第 11 页 共 36 页

C程序设计试题库

b= n/10%10 ; c=n%10;

if( n==(a*a*a+b*b*b+c*c*c) ) { }}}

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

8.输入一个字符串,将字符串中的字符逆序输出。 #include #include void main() { int i,n; char a[30],t;

scanf(\"%s\

n= strlen(a) ;

for(i=0;i}

for(i=0;i}

9.求8的阶乘(8!)。 #include int main( ) { int i,t; t=1; i=2;

while( i<=8 ) {

t=t*i ; i=i+1或i++或i+=1 ; }

printf(\"%d\\n\ return 0; }

第 12 页 共 36 页

C程序设计试题库

10.用数组处理输出Fibonacci数列的前20个数。 #include int main() { int i;

int f[20]={1,1}; for(i= 2 ;i<20;i++) f[i]= f[i-2]+f[i-1] ; for(i=0;i<20;i++) {

if(i%5==0) printf(\"\\n\"); printf(\"%12d\ f[i] ); } printf(\"\\n\"); return 0; }

11.给定一个3*3的二维数组转置,即行列互换。 #include void main()

{ int i,j,a[3][3], b[3][3] ; int row=3,col=3; for(i=0;iscanf(\"%d\ ; for(i=0;i12.从键盘上输入两个数,交换其数值。

#include void swap(int * p,int * q) { int t;

t = * p; * p = * q; * q = t;

第 13 页 共 36 页

C程序设计试题库

printf(\"swap: *p = %d *q = %d\\n\

}

int main() { int x,y;

scanf(\"%d%d\ swap(&x,&y); printf(\"main: x = %d y = %d\\n\ return 0;

}

13.求3×3方阵各行的最大值。

#include #define N 3 int main() { int a[N][N],i,j,max; for(i = 0; i < N; i++) for(j = 0;j < N;j++)

scanf(\"%d\

for(i = 0; i < N; i++) { max = a[i][0]; for(j = 0; j < N; j++) if(a[i][j] > max)

max = a[i][j]; printf(\"max[%d] = %d\\n\

} return 0;

}

14.输出1-200之间的素数。

#include \"stdio.h\" #include \"math.h\" int isprime(int x); void main() { int i,m = 0;

for(i = 1; i < 200;i++) { if(isprime(i))

{

printf(\"%-5d\

第 14 页 共 36 页

C程序设计试题库

}

}

}

m++; if(m % 5 == 0)

printf(\"\\n\");

printf(\"\\n\");

int isprime(int x) { }

15.输入一个不超过5位数的正整数,统计其位数。

#include int main() {

int m,k,temp; k = 0;

scanf(\"%d\

int k,j,flag; k = ( int )sqrt( x ); for(j = 2; j <= k;j++) { } return flag;

if(x % j == 0) { } else

flag = 1; flag = 0; break; temp = m; while(m > 0) } { }

k++;

m = m / 10; printf(\"%d是%d位正整数\\n\return 0;

16.下面程序的功能是计算3×3方阵各行的最大值,请填空。

#include

第 15 页 共 36 页

C程序设计试题库

#define N 3 int main() {

for(i = 0; i < N; i++) }

17.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空。 #include int main()

{

int a[10],i,x;

printf(\"input 10 integers:\"); for(i=0;i<10;i++)

scanf(\"%d\

printf(\"input the number you want to find x:\");

scanf(“%d”, &x);

for(i=0;i<10;i++)

if(x == a[i])

break;

if(i<10 )

printf(\"the pos of x is:%d\\n\

else

printf(\"can not find x!\\n\");

return 0; }

18.下面程序的功能是统计大于零的整数个数和小于零的整数个数。当输入0时结束输入,请填空。

{ } return 0;

max = a[i][0]; for(j = 0; j < N; j++)

if(a[i][j] > max)

max = a[i][j];

int a[N][N],i,j,max; for(i = 0; i < N; i++)

for(j = 0;j < N;j++)

scanf(\"%d\

printf(\"max[%d] = %d\\n\

第 16 页 共 36 页

C程序设计试题库

#include

int main() {

int n,i=0,j=0;

printf(\"input a integer,0 for end\\n\"); scanf(\"%d\

while ( n或n!=0 )

{

if(n>0)

i = i+1;

else

j=j+1;

}

printf(\"i=%4d,j=%4d \

printf(\"\\n\");

return 0 ;

}

四、阅读程序题

1.该程序运行结果为: 9 8 7 6 5 4 3 2 1 0 。 #include int main() { int i,a[10]; for (i=0; i<=9;i++) a[i]=i;

for(i=9;i>=0; i--) printf(\"%d \printf(\"\\n\"); return 0; }

2.该程序运行结果为: sum is 579.23 。 #include int main() {

float a,b,sum; a=123.111; b=456.121; sum=a+b;

printf(\"sum is %.2f\\n\

第 17 页 共 36 页

C程序设计试题库

return 0; }

3.该程序运行结果为: 5040 。

#include int main( ) {int i,t; t=1; i=2; while(i<=7) { t=t*i; i=i+1; }

printf(\"%d\\n\ return 0; }

4.该程序运行结果为: r 。 (假设由键盘输入的内容是: R ) #include int main() { char ch; scanf(\"%c\

ch=(ch>='A' && ch<='Z')?(ch+32):ch; printf(\"%c\\n\ return 0; }

5.该程序运行结果为: 大写:B,小写:b (假设键盘输入的内容为: B ) #include int main () {

char c1,c2; c1=getchar(); c2=c1+32;

printf(\"大写:%c,小写:%c\\n\ return 0; }

6.该程序运行结果为: 1 4 #include 2 5

第 18 页 共 36 页

C程序设计试题库

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

7.该程序运行结果为: ************

#include How are you? int main() ************ {void printstar(); void print_message(); printstar(); print_message(); printstar(); return 0;} void printstar()

{printf(\"************\\n\");} void print_message() {printf(\"How are you?\\n\"); }

8.该程序运行结果为: sum=15 (假设键盘输入的内容为: 1 2 3 4 5 6 7 8 9 #include int main() {int a[3][3],sum=0; int i,j;

for (i=0;i<3;i++) for (j=0;j<3;j++) scanf(\"%3d\ for (i=0;i<3;i++) sum=sum+a[i][i]; printf(\"sum=%d\\n\ return 0;

第 19 页 共 36 页

C程序设计试题库

}

9.下面程序的运行结果为: 3,2 。

#include int fan(int a, int b) { int c;

c=a>b?a++:++b; return(c); } void main( ) {int x=1, y=2, z, r ; z=fan(x,y) ; r=fan(y,x) ; printf(\"%d,%d\

10.下面程序运行结果为: lettc 。 (从键盘上输入”happy”。) #include void main() {

char c;

while((c=getchar())!='\\n') {

if((c>='A'&&c<='V'-4)||(c>='a'&&c<='v')) c+=4;

else if((c>='W'&&c<='Z')||(c>='W'&&c<='z')) c-=22;

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

11.下面程序运行结果为: 8 10 12 。

#include int f(int a) {int b=0;

static int c=4;b=b+1;c=c+2; return(a+b+c);} void main() { int a=1,i; for(i=0;i<3;i++) printf(\"%4d,\

12.下面程序运行结果为 21 。

#include void main() {

int array[15],j; array[0]=0;

第 20 页 共 36 页

C程序设计试题库

array[1]=1; for(j=2;j<15;j++)

array[j]=array[j-1]+array[j-2];

printf(\"%d\\n\

}

13.下面程序的运行结果为: 3,4 。

#include int fan(int a, int b) { int c;

c=a>b?++a:b++; return(c); } void main( ) {int x=2, y=3, z, r ; z=fan(x,y) ; r=fan(y,x) ; printf(\"%d,%d\

14.下面程序的运行结果为: 7,10,13 。#include int f(int a) {int b=0;

static int c=1;b=b+2;c=c+3; return(a+b+c);} void main() { int a=1,i; for(i=0;i<3;i++) printf(\"%4d,\ }

15.下面程序的运行结果为: 3,36 。

#include void main() {int a=12,b=9,c,d,e,r; if (a{ c=a; a=b; b=c; } d=a*b;

while ((r=a%b)!=0) { a=b; b=r; }

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

16.下面程序的运行结果为: 8 。

第 21 页 共 36 页

C程序设计试题库

#include void main() {

int array[15],j; array[0]=0; array[1]=1; for(j=2;j<15;j++)

array[j]=array[j-1]+array[j-2]; printf(\"%d\}

17.该程序运行结果为: sum=5050 。 #include int main() {int i=1,sum=0; while (i<=100) {sum=sum+i; i++;}

printf(\"sum=%d\\n\ return 0;}

18.该程序运行结果为: 7 8 9 。 #include int f(int a) {int b=0;

static int c=3;b=b+1;c=c+1; return(a+b+c);} void main() {int a=2,i; for(i=0;i<3;i++) printf(\"%2d\

19.该程序运行结果为: 9 8 7 6 5 4 3 2 1 0 。

#include void main() {

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

for(i=9;i>=0;i--) printf(\"%2d\

第 22 页 共 36 页

C程序设计试题库

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

20.该程序运行结果为: 5 。

#include void main() {

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

21.该程序运行结果为: BOY 。 #include int main ()

{char a='B',b='O',c='Y'; putchar(a); putchar(b); putchar(c); putchar ('\\n'); return 0;}

22.该程序运行结果为: a 97 。 #include int main ( ) {char c1,c2; c1='A'; c2=c1+32;

printf(\"%c %d\\n\ return 0;}

23.该程序运行结果为: 0 1 2 3 4 5 6 7 8 9 。

#include void main() {int i,a[10]; for (i=0; i<=9;i++) a[i]=i;

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

24.该程序运行结果为: 7 。

#include

第 23 页 共 36 页

C程序设计试题库

#include void main()

{char a[10]=”chinese”; int i; i=strlen(a); printf(\"%d\\n\}

25.下面程序的运行结果为: ABC 。

#include void main() { }

26.下面程序运行结果为: 7 。

#include int f(int a) { }

void main() { }

27.输入5回车后,下面程序运行结果为: 120 。

#include int fac(int n)

第 24 页 共 36 页

float score=100; switch((int)score/10) { case 10:

case 9: printf(\"A\"); case 8: printf(\"B\"); case 7: printf(\"C\"); break; case 6: printf(\"D\"); break; default: printf(\"Error\"); }

int b=0;

static int c=3;b=b+1;c=c+1; return(a+b+c);

int a=2,i; for(i=0;i<3;i++)

printf(\"%d\

C程序设计试题库

{ int f;

if(n<0) printf(\"n<0,data error!\"); else if(n==0 )

f=1;

else

f = fac(n-1)*n;

return(f); }

void main() { }

28.下面程序运行结果为 b[0]=5,b[1]=3,a[0]=5,a[1]=3 。

#include void fun(int b[2]) { int t; t=b[0]; b[0]=b[1]; b[1]=t;

printf(\"b[0]=%d,b[1]=%d,\}

void main() {

int a[2]; }

29.下面程序的运行结果为: 3 4 。 #include void main() {

a[0]=10; a[1]=5; fun(a);

printf(\"a[0]=%d,a[1]=%d\\n\int n,y; scanf(\"%d\y=fac(n); printf(\"%d\\n\

第 25 页 共 36 页

C程序设计试题库

}

int a=13; switch(a%5) {

case 0: printf(\"0\"); case 1: printf(\"1\"); case 2: printf(\"2\"); default: printf(\"3\"); }

printf(\"4\\n\");

30.下面程序的运行结果为: 21 。 #include void main() { }

31.下面程序的运行结果为: 9,19 。 #include int func (int a,int b) { }

void main ( ) { }

32.下面程序的运行结果为: b0=5,b1=3,a0=3,a1=5 。

第 26 页 共 36 页

int a[][3]={1,2,3,4,5,6,7,8}; int i,sum=0;

for(i=0;i<3;i++)

sum+=a[i][i]+a[i][2-i];

printf(\"sum=%d\\n\

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

int k=4,m=1,p1,p2; p1=func(k,m); p2=func(k,m);

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

C程序设计试题库

#include void fun(int b0,int b1) { int t;

t=b0; b0=b1; b1=t;

printf(\"b0=%d,b1=%d,\

}

void main() { int a0=3,a1=5; fun(a0,a1);

printf(\"a0=%d,a1=%d\\n\}

33.下面程序的运行结果为: CD 。#include int main() { int score=75; switch(score/10) { case 10:

case 9: printf(\"A\"); case 8: printf(\"B\"); break; case 7: printf(\"C\"); case 6: printf(\"D\"); break; default: printf(\"Error\");

}

return 0; }

34.下面程序运行结果为: s=20 。#include int main() { int i,s;

s = 0; for(i = 0;i < 10;i++) {

if(i % 2 == 1)

第 27 页 共 36 页

C程序设计试题库

}

}

continue;

s = s + i;

printf(\"s = %d\\n\return 0;

35.输入5回车后,下面程序运行结果为: student 。

#include int main() {

char str[]=\"STUDENT\";

char *p; p = str;

for(;*p != '\\0';p++) { *p = *p + 32;

}

printf(\"The result is:\\n\"); puts(str); return 0; }

36.下面程序运行结果为 5 6 7 。

#include int f(int a) { int b=0;

static int c=2;

b=b+1; c=c+1; return (a+b+c);

} int main() { int a=1,i; for(i=0;i<3;i++)

printf(\"%d\ printf(\"\\n\"); return 0; }

第 28 页 共 36 页

C程序设计试题库

五、程序设计题

1.用冒泡法对10个整数进行从小到大的排序。 #include int main() {

int a[10]; int i,j,t;

printf(\"input 10 numbers :\\n\"); for (i=0;i<10;i++) scanf(\"%d\ printf(\"\\n\");

for(j=0;j<9;j++)

for(i=0;i<9-j;i++) if (a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf(\"the sorted numbers :\\n\");

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

return 0; }

2.输入一行字符,统计其中有多少个单词,单词之间用空格隔开。 #include int main() {

char string[81]; int i,num=0,word=0; char c;

gets(string); for (i=0;(c=string[i])!='\\0';i++) if(c==' ') word=0; else if(word==0)

{word=1;

num++; }

printf(\"There are %d words in this line.\\n\ return 0; }

3.编写程序,根据输入的三角形的边长,判断是否能组成三角形,若可以则输出它的面积和三角形的类型(等

第 29 页 共 36 页

C程序设计试题库

腰,等边,直角,普通)。

#include #include void main() { double a,b,c,p,area; printf(\"请输入三角形的三条边:\\n\"); scanf(\"%lf,%lf,%lf\ if (a+b<=c||a+c<=b||b+c<=a) printf(\"构不成三角形\\n\"); else { if (a==b&&b==c) printf(\"等边三角形\\n\");… else if(a==b||b==c||a==c) printf(\"等腰三角形\\n\"); else if (a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf(\"直角三角形\\n\"); else printf(\"普通三角形\\n\"); p=1.0/2*(a*b*c); area=sqrt(p*(p-a)*(p-b)*(p-c)); printf(\"area=%f\\n\ } }

4.编写程序,实现从键盘出入年号和月份,计算当年的这一月共有多少天,并输出结果。 #include\"stdio.h\" void main() { }

5.编程求一个矩阵的转置矩阵。 #include int main() {

int a[2][3]={{1,2,3},{4,5,6}};

int year,mon;

scanf(\"%d,%d\switch(mon) {

case 1:case 3: case 5: case 7:case 8: case 10: case 12: printf(\"%d\ case 4:case 6: case 9: case 11: printf(\"%d\case 2: }

if(year%4==0 && year%100!=0 || year%400==0) printf(\"%d\else printf(\"%d\

第 30 页 共 36 页

C程序设计试题库

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

printf(\"array b:\\n\"); for (i=0;i<=2;i++) {

for(j=0;j<=1;j++) printf(\"%5d\ printf(\"\\n\"); }

return 0; }

6.输入两个实数,用函数调用的方法求出它们的和,结果保留两位小数。 #include int main()

{float add(float x, float y); float a,b,c;

printf(\"Please enter a and b:\"); scanf(\"%f,%f\ c=add(a,b); printf(\"sum is %.2f\\n\ return 0; }

float add(float x,float y)

{float z; z=x+y; return(z); }

7.两个乒乓球队进行比赛,各对出3人,每人与对方队的一人进行一场比赛,甲队出A B C三人,乙队出 XYZ三人。请编程找出所有可能的对阵情况。抽签后,有人向队长打听对阵情况,A说他不和X比,C说他不和X、Z比,编程找出三个对手名单。 #include \"stdio.h\" int main()

第 31 页 共 36 页

C程序设计试题库

{ }

8.某班级有30个学生,每个学生有3门课程成绩。现要求编写输入成绩函数、输出成绩函数分别实现学生成绩的输入和输出,并编写函数计算出每个学生三门课程的平均成绩。 #include \"stdio.h\" #define N 30 #define M 3

void input(int a[][M]); void output(int a[][M]); int main() { }

void input(int a[][M]) { }

void output(int a[][M]) {

int i,j;

for(i = 0;i < N;i++) {

for(j = 0;j < M;j++)

printf(\"%5d\

第 32 页 共 36 页

char i,j;

for(i = 'A';i <= 'C';i++)

for(j = 'X';j <= 'Z';j++)

if(i == 'A' && j == 'X' || i == 'C' && j == 'X' || i == 'C' && j == 'Z')

continue;

else

printf(\"%c -- %c\\n\

return 0;

int a[N][M]; input(a); output(a); average(a); return 0;

int i,j;

for(i = 0;i < N;i++)

for(j = 0;j < M;j++)

scanf(\"%d\

C程序设计试题库

}

}

printf(\"\\n\");

void average(int a[][M]) { }

9.编程实现:从键盘上输入a和n的数值,计算a + aa + aaa + … + aaaaa;如输入变量a和n的值分别是2和5,则计算式为2 + 22 + 222 + 2222 + 22222;如输入变量a和n的值分别是3和5,则计算式为3 + 33 + 333 + 3333 + 33333。(提示:pow(x,y)表示xy,使用该函数需添加头文件math.h) #include \"stdio.h\" #include \"math.h\" int main() { }

10.编写冒泡排序函数,实现对一维数组进行排序,数组元素类型可自行定义。 #define N 5

int a,n,i,j; double sum = 0,m; scanf(\"%d%d\ for(i = 0; i < n; i++) { }

printf(\"sum = %7.0lf\\n\return 0;

m = 0;

for(j = 0; j <= i; j++ )

m = m +a * pow(10.0,j);

int i,j; double ave; for(i = 0;i < N;i++) { }

ave = 0;

for(j = 0;j < M;j++)

ave = ave + a[i][j];

ave = ave / M;

printf(\"The %dth student's average score :%7.2lf\\n\

sum = sum + m;

第 33 页 共 36 页

C程序设计试题库

#include \"stdio.h\" void sort_maopao(int * p); void main() {

int a[N],i;

for(i = 0; i < N;i++) scanf(\"%d\ printf(\"冒泡排序:\\n\"); sort_maopao(a); for(i = 0;i < N; i++) printf(\"%d \}

void sort_maopao(int * p) {

int i,j,t;

for(i = 0; i < N; i++)

for(j = 0; j < N - 1 - i;j++) {

if(p[j] < p[j + 1]) {

t = p[j]; p[j] = p[j + 1]; p[j + 1] = t; } } }

11.编写程序实现如下图的乘法口诀表。(其他答案,只要能实现相应功能,也可得相应分数)

#include \"stdio.h\" int main() {

int x,y;

for(x = 1;x < 10; x++) {

第 34 页 共 36 页

C程序设计试题库

}

}

for(y = 1;y <= x; y++)

printf(\"%d*%d=%d \printf(\"\\n\");

return 0;

12.输入10个数,编写两个函数分别求其最大值和平均值。(其他答案,只要能实现相应功能,也可得相应分数)

#include \"stdio.h\" int main() { }

int max(int a[]) { }

double average(int a[]) { }

13.编程实现如下图的二维数组的输入输出。(其他答案,只要能实现相应功能,也可得相应分数)

第 35 页 共 36 页

int max(int a[]); double average(int a[]); int a[10],i,m; double aver; for(i = 0;i < 10;i++)

scanf(\"%d\m = max(a); aver = average(a);

printf(\"max = %d average = %5.2lf\\n\return 0;

int i,m; m = a[0];

for(i = 1; i < 10;i++) { } return m;

if(a[i] > m)

m = a[i];

double s = 0; int i;

for(i = 0;i < 10; i++)

s = s + a[i]; s = s /100; return s;

C程序设计试题库

2 4 5 6 8

#include int main() { int a[3][3],i,j; for(i = 0;i < 3;i++) for(j = 0;j < 3;j++)

scanf(\"%d\

for(i = 0;i < 3;i++) { for(j = 0;j < 3;j++) if(i == 1 || j == 1)

printf(\"%2d \

else

printf(\" \");

printf(\"\\n\");

} return 0;

}

第 36 页 共 36 页

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

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

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

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