C语言试题库(带答案解析)~排版

C语言试题库(带答案解析)~排版
C语言试题库(带答案解析)~排版

一、选择题

1、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ

(D) LINE1 2、以下不能定义为用户标识符的是( ) (A) If

(B) H_J (D) LINE12 3、下面属于C 语言标识符的是( )。 (A) 2ab (B) @f

(C) b 4、下列符号中用来表示C 语言中的回车换行的是( )。 (A) \r

(C) \b (D) \t 5、在计算机系统中,可执行程序是( ) (A)

源代码

(B)汇编语言代码

(D) ASCII 码

6、在Visual C++ 环境下,C 源程序文件名的默认后缀是(

)。 (A) .obj (B) .txt (D) .doc

7、Microsoft Visual C++ 中,C 语言可执行程序的扩展名是:( )

(B) obj (C) c 或cpp (D) txt 8、C 程序由(

)组成。

(A)子程序 (B) 主程序和子程序 (D) 过程 9、C 程序的基本组成单位(

)。

(A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语言中主函数的个数是( )。

(A) 2个 (C) 任意个 (D) 10个 11、一个

C 程序的执行是从( ) (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main 函数结束. (D)

本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是

(A)在C 语言程序中,main 函数必须放在其他函数的最前面 (C)在C 语言程序中,只有main 函数才可单独进行编译 (D)每个后缀为.C 的C 语言源程序都应该包含一个main 函数

13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是(

)。

(A) int (B) float 14、以下选项中表示一个合法的常量是(说明:符号□表示空格)

A) 9□9□9 C) D)

15、以下选项中非法的字符常量是

A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表示逻辑值“假”的是

A)1 B) D)

17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语言变量,以下说法不正确的是(

) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。

(D) 变量命名时应尽量做到见名知意。 19、关于C 语言中数的表示,以下叙述正确的是

B)只要在在允许范围内整型和实型都能精确表示

C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差

20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a 的值是 。 A .3

B .0

C .9 21、在C 语言中,要求运算数必须是整型的运算符是 。

B ./

C .<

D .!

22、C 语言中最简单的数据类型包括 。

A .整型、实型、逻辑型 C .整型、字符型、逻辑型

D .整型、实型、逻辑型、字符型

23

、在C 语言中,合法的字符型常量是 。 B ."A" C .65 D .A

24、若已定义x 和y 为double 型变量,则表达式x=1

,y=x+3/2的值是 。 A .1 B .2 D .

25、设正x 、y

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

A .10,3

B .9,3

C .9,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C 的值为

。 A . C . D .2

27、以下选项中,不正确的赋值语句是 。 A .++t; B .n1=(n2=(n3=0)); C .k=i==j;

28、设x 和y 均为

int 型变量,则语句:x+=y,y=x-y;x-=y;的功能是 。 A .把x 和y 按从大到小的顺序排列 B .把x 和y 按从小到大的顺序排列 C .无确定结果 29、以下程序的输出结果是 。 #include <> main() {

char c='z'; printf("%c",c-25); }

B .Z

C .z-25

D .y

30、已知字母A 的ASCII 码为十进制数的65,以下程序的输出结果是 。

#include <> main() {

char ch1,ch2;

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

printf("%d,%c\n",ch1,ch2);

B .B,C

C .C,D

D .不确定的值

31、若k 是int 型变量,则以下程序片段的输出结果是 。

k=-3;

if(k<=0) printf("####"); printf("&&&&"); B .&&&&

C .####&&&&

D .有语法错误,无输出结果

32、关于以下程序,说法正确的是 。

#include <> main()

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

if(x=y+z) printf("* * * *"); else printf("# # # #"); }

A .有语法错误不能通过编译

B .输出* * * *

33、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 。

A .a<>0

B .!a

C

.a=0

34

z 的C 语言表达式是 。

B .(x<=y)and(y<=z)

C .(x<=y<=z)

D .(x<=y)&(y<=z) 35、能正确表示逻辑关系a ≥10或a ≤0的C 语言表达式是 。

A .a>=10 or a<=0 C .a>=10 &&a<=0

36、若变量c 为char 型,能正确判断出

c 为小写字母的表达式是 。

A .'a'<=c<= 'z'

C .('a'<=c)and ('z'>=c) 37、语句while(E);中的条件

E 等价于 。A .E==0 B .E!=1 D .~E 38

中的条件!E 等价于 。

B .E!=1

C .E!=0

D .~E

39、以下程序片段的输出结果是

int x=23; do {

printf("%2d",x--); } while(!x); A .打印出321 C .不打印任何内容

D .陷入死循环

40、若i 、j 已定义为int 型变量,则以下程序片段中,内循环体的执行次数

for(i=5;i;i--)

B .25

C .24

D .30

41、以下程序的输出结果是 。

#include <> main() {

int n=4;

while(n--) printf("%d ",--n);

B .3 1

C .3 2 1

D .2 1 0

42、以下定义语句中,错误的是 。 A .int a[]={1,2};

B .

C .char s[10]="test";

43、设int 型变量占用

4个字节,如有定义int x[10]={0,2,4};,则数组x 在内存中

所占的字节数是 。

A .3

B .12

C .20

44、以下语句的输出结果是 。

B .14

45、以下程序片段的输出结果是 。

char str[]="ab\n\012\\\""; printf(%d",strlen(str)); A .3 B .4

D .12

46、以下数组定义中,不正确的是 。

A .int a[2][3];

B .int b[][3]={0,1,2,3}; 47、以下程序的输出结果是 。

#include <> main() {

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

printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]); B .1470 C .5430

D .不确定的值

48、以下程序的输出结果是 。

#include <> 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",s); }

A .11

.13

D .20

49、以下对C 语言字符数组的描术中,错误的是 。 A .字符数组可以存放字符串

D .不可以用关系运算符对字符数组中的字符串进行比较 50、定义如下变量和数组:

int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; 以上语句的输出结果是

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

printf("%d",x[i][2-i]);

A .1 5 9

B .1 4 7 D .3 6 9

51、不能将字符串:Hello!赋给数组b 的语句是 。

C .char b[10];strcpy(b,"Hello!");

D .char b[10]="Hello!";

52、以下数组定义中,合法的是 。 A .int a[]="string";

C .string s="string"; 53、若有以下定义语句:

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

A .*p+6

B .*(p+6) D .p+5

54、若有以下定义语句:

int w[3][4]={{0,1},{2,4},{5,8}}; int(*p)[4]=w;

则数值为4的表达式是 。

A .*w[1]+1

B .p++,*(p+1)

C .w[2][2]

55、若有以下定义语句:

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则不能表示a 数组元素的表达式是 。

A .

C .*a

D .a[p-a]

56、下列保留字中用于构成循环结构的是( )

(A) else (C) switch (D) default

57、以下程序运行结果是:( ) (B) 输出5次“你好,中国!”

(C) 没有任何输出 (D) 编译错误,不能运行 #include<> main() { while(5)

printf("你好,中国!"); }

58、以下函数值的类型是 。

int fun(float x) {

float y; y=3*x-4; return y;

.不确定 C .void

D .float

59、以下程序的输出结果是 。

#include <> int a,b; void fun() {

a=100; b=200; } main() {

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

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

A .100200 C .200100

D .75

60、以下函数调用语句含有 个实参。

A .1 C .4 D .5

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

式是 。

A .地址传递

C .由实参传给形参,再由形参传回实参

D .由用户指定的 62、以下if

语句错误的是( ) (B )if (x) x+=y; (C )if (x

(D )if (x!=y) scanf ("%d",&x); else x++;

63、以下有关switch 语句的说法正确的是(

) (A )break 语句是switch 语句中必需的一部分。

(C )break 语句在switch 语句中不可以使用。

(D )在switch 语句中的每一个case 都要使用break 语句。 64、以下叙述正确的是( )

(A) do-while 语句构成的循环不能用其它语句构成的循环来代替。 (B) do-while 语句构成的循环只能用break

语句退出。

(C) 用do-while 语句构成的循环,在while 后的表达式为非零时结束循环。 65、C 语言中规定,if 语句的嵌套结构中,else 总是( )配对。 (A )与最近的if

(B )与第一个if

(C )与按缩进位置相同的if

66、以下说法错误的是(

(B )while 语句是先进行循环条件判断,后执行循环体。 (C )do...while 是先执行循环体,后进行循环条件判断。 (D )while 、do...while 和for 语句的循环体都可以是空语句。 67、对do...while 语句错误的描述是:( )

(A )可构成多重循环结构 (B )循环次数不可能为0

(C )先执行后判断

语言中规定,赋值表达式中赋值号(“=”)左边。 A)可以是常数

C)只能是表达式 D)可以是常数或表达式

69.C 语言中,s=i++;等价于 B)i=i+1; s=i; C)s=i; s=s+1; D)s=i;s=i+1; 70.正确的整型常量是

A)3e3

C)’a ’ D) 71.已知:int a=3,b=8;,则表达式a%b 的值为

A)0 B) C)2

72.C 程序中,运算符>=是 A)算术运算符

C)逻辑运算符

D)以上均不是

73.已知:int a=1,b=2,c=3,d=4;

则表达式a>ba:(c>dc:d)的值是 A)1 B)-2 C)3 74.

执行以下程序段后,变量y 的值是 int x,y; x=1;

y=(++x*5); A)5

C)15

D)20

75.若有说明:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};,则数组第一维的大小为

A)2

C)4

D)不能确定的值

76.函数调用:strcat(strcpy(str1,str2),str3)的功能是 A)将串str1复制到串str2中后再连接到串str3之后

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

D)将串str2连接到串str1之后再将串str1复制到串str3中 77.有以下程序 #include <> main() {

int a,b; a=5;b=8; p(a+b,a); p(a/b,b); }

p(int x,int y) {

y=x+y;

printf(“%d,%d\n ”,x,y); }

则执行上述程序后的输出是

B)18,5 C)18,5 D)18,23

1,13 1,14 1,13

78.若以数组名作为函数的实参,则实参向形参传送的是 A)数组元素的地址 B)数组元素的值

D)数组名

79.变量的指针是

A)变量的值 B)指针变量

D)变量存储单元的字节数 80.执行以下程序后,a 的值为 int *p,a=10,b=1; p=&a;a=*p+b;

A)12

B)编译出错 C)10 二、填空题

1

、C

C 语言的关键字作为标识符。

(两空顺序可以互换)

2、在C

3、在C

4、机器语言是计算机唯一能直接执行的语言。计算机并不能直接地接受和执行用高级语言编写的源程序,源程序在输入计算机时,通过“翻译程序”翻译成机器语言形式的目标程序,计算机才能识别和执行。这种 “翻译”通常有两种方式,即

5、C

6

、开发一个C 程序要经过编辑、

和运行4个步骤。

7、在结构化程序设计方法中,有 、

三种基本结构。

8、C 语言中为了简化程序,提高程序的编译效率,在赋值运算符前面加上其他运算符号构成复合运算符。例如:x=x+5 用复合运算符可以写成

9、已知字符A 的ACSII 码值为65,以下语句的输出结果是

char ch='B';

printf("%c,%d\n",ch,ch);

10、若定义:int a=5,b=2,c=1; 则表达式 a-b>c||b==c 的值是

;表达式 a-b>c&&b==c 的值是

14、“: ”条件运算符是C 语言中唯一的三目运算符。由其连接的表达式为条件表达式,其格式为: <表达式1><表达式

2>:<表达式3> 。执行过程:首先计算表达式1的值,如果表达式1的值是“真”(非0),则整个表达式的值为

的值;如果表达式1的值是“假”(0),则整个表达式的值为

的值。

15、C 语言中常用的三种循环控制语句中,while 语句和for

循环,do……while 语句属于

16、把多个语句用括号 {} 。

在程序中应把这种语句看成是单条语句,而不是多条语句。把一种只有分号而没有表达它是c 语句中最简单的语句,

因为它只由一个分号组成,是一种不执行任何操作的语句。

17、对于while

和do……while 这两种循环语句,1次循环体,而

18、在循环语句中,continue 和

break 语句的区别是:束本次循环,进行下一次循环的判断;而

循环。

19、一个循环体内又包含另一个完整的循环结构,称为。

20、for 语句表达方式灵活多样,for(;;) 表示 。

21、表达式(int)((double)(5/2)+

22、设

x 和y 均为int 型变量,且x=1,y=2,则表达式+x/y 的值为。 23、变量a 和b 的值均不为0

24、对于while 和do-while

1次循环体。

25、逗号表达式(a=15,a*4),a+5

26、执行下列语句int a=8; a+=a-=a*a; 后,a

27、开发一个C 4个步骤。

28、C 29、int x=6, y=7;

printf(”%d,”,x++); printf(”%d \n”,++y);

30、判断ch

31、 func((exp1,exp2),(exp3,exp4,exp5));

32、设有以下定义语句:

int a[3][2]={10,20,30,40,50,60},(*p)[2]=a; 则*(*(p+2)+1)

33、以下函数的功能是将两个整数指针所指的存储单元中的内容进行交换。 exchange(int *x, int *y) {

int t;

}

34、int 变量在Win32个字节。

35、写出10

36、变量a

、b 中有且只有一个为0

37、若有定义语句:int a=5;,则表达式a++

38、若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y 39

、若整型变量a 和b 中的值分别为7 和9,要求按以下格式输出a 和b 的值: a=7,b=9

请完成输出语句:。

40、若有定义:int k;

for(k=2;k<6;k++,k++) printf("#%d",k);

41、 #include<> main() {

int x=20;

printf("%d ",0

c 的为整型数,且a=2、b=3、c=4,则执行完以下语句后,a 的值

a*=16+(b++)-(++c);

a 赋予1,给

b 赋予2,则输入数据的形式应该是 。

int a,b;

scanf("a=%b,b=%d",&a,&b);

44、若有定义语句int a=10,b=9,c=8;,执行以下语句后,变量b

c=(a-=(b-5));

c=(a%11)+(b=3);

45

#include <> main() {

int a=1,b=2; a=a+b; b=a-b;a=a-b; printf("%d,%d\n",a,b); }

46

#include <> main() {

int a=177; printf("%o\n",a); }

47

#include <> main() {

int a=0; a+=(a=8); printf("%d\n",a); }

48

#include <> main() {

int x=10,y=20,t=0; if(x==y) t=x; x=y; y=t; printf(“%d,%d \n”,x,y); }

49、以下函数的功能是将两个整数指针所指的存储单元中的内容进行交换。

exchange(int *x, int *y) {

int t;

}

50、函数fun( )

计算数组中各元素的平均值。

double fun(int a[],int n) { int i;

return avg; }

51、函数fun 功能:对数组中前n 个元素进行排序。

void fun(int a[],int n) {

int i,j; int temp;

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

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

{

temp=a[i]; a[i]=

} }

52 53、表达式*(1/2)

54、C &&算符。 顺序结构:

1、编写一个C 程序,由用户输入一个双精度实型数据存储到变量x 中,实现四舍五入保留小数点三位,并输出。

2、编写一个C 程序,实现由用户输入两个整数a,b ,交换a 和b 的值后,输出。

3、编写一个C 程序,由用户输入三角形三条边长a,b,c ,计算三角形的面积,并输出,如果输入的三条边不能构成三角形的话,则输出-1。 附:计算三角形的海伦公式: 设三角形三边长为

a,b,c,半周长

p=(a+b+c)/2,面积

c)-b)(p -a)(p -p(p =s

选择结构:

1、输入两个整数,求其最大值并输出。

2、输入三个整数,求其最大值并输出。

3、输入三个整数,要求按照从小到大进行排序,并输出。

4、编写一个C 程序,由用户输入一个整数,判断并输出它是奇数还是偶数。 循环结构:

1、编写一个C 程序,求1+2+3+...+99+100的值。

2、编写一个C 程序,求1+3+5+...+97+99的值。

3、编写一个C 程序,求的值。

100

1991...4131211-++-+-

4、编写一个C 程序,输入一个整数,判断其是否为素数。 数组:

1、编写一个程序,从键盘上读取10个整数到数组中,并数组中元素其最大值,并输出。

2、编写一个程序,从键盘上读取一个字符串到字符数组中,统计字符串中数字字符的个数,并输出。

3、编写一个程序,求N*N 矩阵左下半角元素置为零。

4、编写一个程序,求二维数组中周边元素的和。

5、使用一维数组来存放5个学生的考试分数{85,70,67,75,90},求分数在60-75之间的学生人数。 #include<> main() {

int a[5]={85,70,67,75,90},i,count=0; for(i=0;i<5;i++) { if(a[i]>=60&&a[i]<=75)

count++;

}

printf(“60-75分之间有%d 位学生\n ”,count); } 函数:

1、编写一个函数void fun(int a[],int n); ,要求对a 指向的数组中n 个元素逆序进行存放。

2、编写一个函数int fun(int a[],int n); ,要求返回a 所指向数组中元素的最大值。

3、编写一个函数int IsPrime(int m),判断某个数是否为素数,如果是,返回1,如果不是,返回0。

4、编写一个函数void fun(char *s); ,要求删除所有s 所指向字符串中的空格。

C语言试卷及答案

《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。

2019年电大C语言考试题库(c语言小题+编程)

C语言程序设计课程期末复习练习 一、单选题 1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为( )。 A. main B. MAIN C. name D. function 2.每个C语言程序文件的编译错误分为()类。 A. 1 B. 2 C. 3 D. 4 3. 字符串"a+b=12\n"的长度为()。 A. 6 B. 7 C. 8 D. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为()语句。 A. for B. if C. do D. while 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为()。 int i=0; do i++; while(i<10); A. 4 B. 3 C. 5 D. 10 6. 将两个字符串连接起来组成一个字符串时,选用的函数为()。 A. strlen() B. strcap() C. strcat() D. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是()。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组中全部元素的值 D. 数组元素的个数 8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大( )个字节。 A. 4 B. 8 C. 16 D. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为"Hello world!",若要使变量p指向s所指向的字符串,则p应定义为()。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s; 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为()。 A. gets() B. fgets() C. getc() D. fgetc() 11. 由C语言目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. c 12. 设有两条语句为“int a=12; a+=a*a;”,则执行结束后,a的值为( )。 A. 12 B. 144 C. 156 D. 288 13. 带有随机函数调用的表达式rand()%20的值在( )区间内。 A. 1~19 B. 1~20 C. 0~19 D. 0~20 14. for循环语句“for(i=0; i

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 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、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 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",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) a

c语言试题及答案

C语言部分 一、选择题(每小题2分,共10分) (下在各小题,分别有一个或多个正确答案,请将所有正确答案的编号,填写在该小题题干后的括号内。错选或漏选均不得分)。 1、若定义:int a[2][3]{0,2,4,6,8,10};以下描述正确的有( A,C,D, E ) A、*(a+1)为元素6的地址 这里a+1=a[1]的地址;*(a+1)的值是6,故A正确。 B、*(a[1]+1)的值为2 为8,故B不正确 C、**(a+1)+2的值为8 这里a+1是一个指针,指向的是a[1]. *(a+1)为a[1],a[1]指向的是a[1][0]. **(a+1)为6,加2得8,故C正确; D、a[0]与a相同 因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E、a[1][2]的值为10 它是指第二行的第三个元素,为10,正确 2、对函数的正确使用方法描述( A,C,D )。 A、用数组做函数参数时,必须在主调函数和被调函数中分别定义数组 B、实参数组元素和形参数组元素类型可以不一致 C、形参数组长度可以不指定 D、形参数组长度可以大于实参数组长度 E、数组名做参数属于值传递 3、对静态变量的正确描述( A,B,D,E )

A、静态局部变量在静态存储区内分配单元() B、静态外部变量可以赋初值,也可以不赋初值 C、静态外部变量的作用与外部变量相同 D、静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E、静态局部变量只赋一次初值 4、下列描述正确的是( A ,C)。 A、由main 函数及其参数argc和* argv[]可以实现命令行方式 B、使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中 //先写缓冲区数据到文件中,再释放文件指针 C、字符数组并不要求它的最后一个字符是‘\0’ //是的,以字符指针指向的字符串才要求,因为只有这样,才能知道字符串的长度,而在字符数组中,不用\0,一样可以知道到哪里是字符数组的结尾。 D、‘A’和“A”都是字符串常量 E、若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7 5、在缓冲文件系统中用于读写的函数有( A,B,D ) A、putchar () B、fread() C、rewind () D、purw() E、fseek() 二、程序阅读,并给出运行结果(共10分,每题5分)。 (1)main() { unsigned a,b,x int n; a=0x763 输出结果: n=6;

C语言全部题目及答案

C语言全部题目及答案 SANY GROUP system office room 【SANYUA16H-

C语言全部题目及答案 Exercise 1: Programming Environment and Basic Input/Output 1.Write a program that prints “This is my first program!” on the screen. (a)Save this program onto your own disk with the name of e2-1a; (b)Run this program without opening Turbo C; (c)Modify this program to print “This is my second program!”, then save it as e2-1b. Please do not overwrite the first program. 2.Write a program that prints the number 1 to 4 on the same line. Write the program using the following methods: (a)Using four “printf” statements. (b)Using one “printf” statement with no conversion specifier(i.e. no ‘%’). (c)Using one “printf” statement with four conversion specifiers 3.(a) Write a program that calculates and displays the number of minutes in 15 days. (b) Write a program that calculates and displays how many hours 180 minutes equal to. (c) (Optional) How about 174 minutes?

(完整版)C语言考试题库之判断题(2)

三、判断题(10道小题,共10分) 1、C 语言具有简洁明了的特点。(1分) 正确 2、预处理命令的前面必须加一个“#”号。(1分) 正确 3、标准格式输入函数scanf()可以从键盘上接收不同数据类型的数据项。(1分) 正确 4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。(1 分) 正确 5、continue 不是结束本次循环,而是终止整个循环的执行。(1分) 错误 6、在对数组全部元素赋初值时,不可以省略行数,但能省略列数(1分) 错误 7、.函数的实参传递到形参有两种方式值传递和地址传递(1分) 正确 8、直接访问就是直接利用变量的地址进行存取直接访问(1分) 正确 9、共用体变量可以作结构体的成员,结构体变量也可以作共用体的成员。(1分) 正确 10、文件指针和位置指针都是随着文件的读写操作在不断改变。(1分) 错误 11、C 语言标准格式输入函数scanf() 的参数表中要使用变量的地址值。(1分) 正确 12、浮点型常量的指数表示中,e 是可以省略的。(1分) 错误 13、任何表达式语句都是表达式加分号组成的。(1分) 正确 14、在switch语句中,每一个的case常量表达式的值可以相同。(1分) 错误 15、do-while循环的while后的分号可以省略。(1分) 错误 16、用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。正确 17、C语言函数返回类型的默认定义类型是void(1分) 错误 18、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数(1分) 正确 19、枚举类型中的元素都具有一个整型值。(1分) 正确 20、C 语言是一种具有某些低级语言特征的高级语言。(1分) 正确 21、case语句后如没有break,顺序向下执行。(1分)正确

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

C语言试题库(带答案解析)~排版

一、选择题 1、以下不能定义为用户标识符的是( )。 (A) MAIN (B) _HJ (D) LINE1 2、以下不能定义为用户标识符的是( ) (A) If (B) H_J (D) LINE12 3、下面属于C 语言标识符的是( )。 (A) 2ab (B) @f (C) b 4、下列符号中用来表示C 语言中的回车换行的是( )。 (A) \r (C) \b (D) \t 5、在计算机系统中,可执行程序是( ) (A) 源代码 (B)汇编语言代码 (D) ASCII 码 6、在Visual C++ 环境下,C 源程序文件名的默认后缀是( )。 (A) .obj (B) .txt (D) .doc 7、Microsoft Visual C++ 中,C 语言可执行程序的扩展名是:( ) (B) obj (C) c 或cpp (D) txt 8、C 程序由( )组成。 (A)子程序 (B) 主程序和子程序 (D) 过程 9、C 程序的基本组成单位( )。 (A) 数据类型 (B) 变量和常量 (D) 表达式 10、C 语言中主函数的个数是( )。 (A) 2个 (C) 任意个 (D) 10个 11、一个 C 程序的执行是从( ) (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main 函数结束. (D) 本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是 (A)在C 语言程序中,main 函数必须放在其他函数的最前面 (C)在C 语言程序中,只有main 函数才可单独进行编译 (D)每个后缀为.C 的C 语言源程序都应该包含一个main 函数 13、设变量a 是整型,b 是实型,c 是双精度型,则表达式2+’a’+b*c 值的数据类型是( )。 (A) int (B) float 14、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9□9□9 C) D) 15、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' 16、以下选项中,能表示逻辑值“假”的是 A)1 B) D) 17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 C) 3<=4||3 D)(3<4)==1 18、关于C 语言变量,以下说法不正确的是( ) (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (D) 变量命名时应尽量做到见名知意。 19、关于C 语言中数的表示,以下叙述正确的是 B)只要在在允许范围内整型和实型都能精确表示 C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差 20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a 的值是 。 A .3 B .0 C .9 21、在C 语言中,要求运算数必须是整型的运算符是 。 B ./ C .< D .! 22、C 语言中最简单的数据类型包括 。 A .整型、实型、逻辑型 C .整型、字符型、逻辑型 D .整型、实型、逻辑型、字符型 23 、在C 语言中,合法的字符型常量是 。 B ."A" C .65 D .A 24、若已定义x 和y 为double 型变量,则表达式x=1 ,y=x+3/2的值是 。 A .1 B .2 D . 25、设正x 、y 均为整型变量,且x=10,y=3,则以下语句的输出结果是 。 printf("%d,%d\n",x--,--y); A .10,3 B .9,3 C .9,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C 的值为 。 A . C . D .2 27、以下选项中,不正确的赋值语句是 。 A .++t; B .n1=(n2=(n3=0)); C .k=i==j; 28、设x 和y 均为 int 型变量,则语句:x+=y,y=x-y;x-=y;的功能是 。 A .把x 和y 按从大到小的顺序排列 B .把x 和y 按从小到大的顺序排列 C .无确定结果 29、以下程序的输出结果是 。 #include <> main() { char c='z'; printf("%c",c-25); } B .Z C .z-25 D .y 30、已知字母A 的ASCII 码为十进制数的65,以下程序的输出结果是 。 #include <> main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); B .B,C C .C,D D .不确定的值 31、若k 是int 型变量,则以下程序片段的输出结果是 。 k=-3; if(k<=0) printf("####"); printf("&&&&"); B .&&&& C .####&&&& D .有语法错误,无输出结果 32、关于以下程序,说法正确的是 。 #include <> main()

C语言期末考试题含答案

C语言期末考试题含答 案 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:float a=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(21 的计算结果不. 相符的是( ) A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue

7.在while(!x)语句中的!x与下面条件表达式等价的是() A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include <> void main(){ int i=1,j=1,k=2; if( (j++||k++)&&i++ ) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2B)2,2,1C)2,2,2D)2,2,3 9、有以下程序: #include <> void main(){ int i,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: void fun(int n,double x){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是() A)fun(int y,double m); B)k=fun(10,; C)fun(x,n); D)void fun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言试题库(完整版)

C语言试题库 一、单项选择 第一章 C语言概述 (1)一个C程序的执行是从 A、本程序的MAIN函数开始,到MAIN 函数结束。 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C、本程序的MAIN函数开始,到本程序的最后一个函数结束。 D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。(2)以下叙述正确的是 A、在C程序中,MAIN函数必须位于程序的最前面。 B、 C程序的每行中只能写一条语句。 C、 C语言本身没有输入输出语句。 D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。(3) C语言规定,在一个源程序中,MAIN主函数的位置是在: A、必须在最前面。 B、必须在系统调用的库函数的后面 C、可以在任意位置。

D、必须在最后面 (4)一个C程序是由: A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 (5)以下叙述不正确的是: A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个MAIN函数 C、 C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 第二章数据类型、运算符与表达式 (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, scanf, case E、 if, struct, type (3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,do B、float,1a0, _A C、b-a, goto, int D、_123, temp, INT (4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3 B、3*a*e/bc C、3*a*e/b*c D、a*e/c/b*3 (5)已知各变量的类型说明如下:

C语言面试题及答案

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……whi le和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 以下是引用片段: #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; }

答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于( 堆)中。 9、设有以下说明和定义: typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:___52____ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.

相关文档
最新文档