文档库 最新最全的文档下载
当前位置:文档库 › C语言 模拟试题集1

C语言 模拟试题集1

C语言   模拟试题集1
C语言   模拟试题集1

填空题:

1、C语言中基本的数据类型有:整型、字符型、浮点型。

2、C语言中普通整型变量的类型说明符为 int ,在内存中占 2 字节,有符号普通整型的数据范围是。

3、整数-35在16位机内的补码表示为。

地址。取运算对象的地址。“*”运算符的作用是取指针变量所指向的内容。

8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 a=1,b=3,c=2 。

9、设整型变量n的值为2,执行语句n+=n-=n*n后,n的值是 -4 。

10、下列程序的输出结果是。

int ast(int x,int y,int * cp,int * dp)

{ *cp=x+y;*dp=x-y;}

main()

{ int a=4,b=3,c,d;

ast(a,b,&c,&d);

printf("%d,%d/n",c,d;}

11、C语言的预处理语句以____#号______开头。

12、表达式7+8>2&&25%5的结果是_______0_______________。

13、C语言中putchar(c)函数的功能是___________输出字符______________________。

14、语句int *p;的含义是______________定义指针变量p为整型_____________________________。

15、定义fp为文件型指针变量的定义方法为______FILE*fp_________________。

16、语句 int a[3][4];共定义了_____12_______个数组元素。

17、实型变量的类型说明符有:_____float_____、____double________。

18、C语言中数组的下标下限为_______0____________________。

20、设x=4,y=(++x)+(++x);那么y的值为___12_,表达式执行后,变量x的值为___6____。

21、一个变量的指针是指____该变量的地址________________________________________。

22、能够构成一个数组,其元素满足的特点是____同一类型______________________________;那么,构成结构体的成员可以是______不同类型___________________________________。

23、下面运算符< % ++ = 按照优先级从高到低排列顺序为____++ ,%,<,=__________。

24、C程序设计中语句后的符号/*……*/ 所起作用是___注释______________________。

25、写出下面表达式的值:

(1)3*5/7+7%3_____3____ (整数相除结果为整数)(2)x=2;y=4;(x++)+y _6_______ (3)3+4>=7-10_____1______ (4)3>4?3%2:1 __1___________

(5)x=2,y=2;++x||++y___1______ (6)x=3;x+=x-=2____2_____

26、在C语言中,正确的标识符是由____数字,字母,下划线________组成的,且由_以字母或者下划线_开头的。

27、设p=30,那么执行q=(++p)语句后,表达式的结果q为__31__,变量p的结果为__31_。若a为int 类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是____-12_____。

29、在C语言程序中,对文件进行操作首先要_____打开______________;然后对文件进行操作,最后要对文件实行_________关闭_________________操作,防止文件中信息的丢失。

30、以下程序(头文件省略)运行后的输出结果是20,10 。该程序的功能是变量交换。

main()

{ int x=10,y=20,t=0;

if(x!=y) t=x; x=y; y=t;

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

31、若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为"读"而打开此文件:fp=fopen( “d1.dat”, “rb”);。

33、在循环中,continue语句与break语句的区别是:continue语句是,break

36、能表述“2020 && x<30)||x<-100)。

37、结构化程序设计方法规定程序或程序段的结构有三种:顺序结构、(选择结构)和(循环结构)。

38、C语言共提供了三种用于实现循环结构的流程控制语句,它们是(while )、(do )和(for )。

39、若在程序中用到putchar,应在程序开头写上包含命令(#include “stdio.h” ),若在程序中用到strlen()函数时,应在程序开头写上包含命令(# include “string.h”)。

40、设有定义语句static int a[3][4]={{1},{2},{3}};,则a[1][1]值为(0 ),a[2][1]的值为(0 )。

41、“*”称为(指针)运算符,“&”称为(地址)运算符。

42、赋值表达式和赋值语句的区别在于有无(;)号。

43、用{}把一些语句括起来称为(复合)语句

44、设a=12、b=24、c=36,对于scanf (“a=%d,b=%d,c=%d”,&a,&b,&c);语句,输入形式应为()

45、表达式sqrt(s*(s-a)*(s-b)*(s-c));对应的数学式子为()

46、C语言编绎系统在判断一个量是否为“真”时,以(非0 )代表“真”以0代表假

47、C语言从源程序的书写到上机运行输出结果要经过__编辑、编译、连接、执行_____________四个步骤。

48、C语言的表达式与语句的区别在于___________________________________。

49、C语句_____没有________ (有、没有)输入、输出语句。

50、结构化程序的编写有___顺序选择循环____________________________三种程序结构。

51、表达式10/3*9%10/2的值是_____3______________。

52、设有int x=2,y说明,则逗号表达式y=x+5,x+y的值是____9_____________。

53、设有int x=1,则x>0?2*x+1: 0表达式的值是_3_____________________。

54、变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。__y%4==0&&y%100!=0||y%400==0________

55、逻辑运算符&&、||、 !中的优先级是__!&& ||__________________

57、在C语言中,字符串常量是用双引号表示一串字符。

58、若有说明和语句:int a=25,b=60;b=++a;则b的值是26 。

59、若int x=5;while(x>0)printf(“%d”,x--);的循环执行次数为 5 。

60、若有int a[5],*p=a;则p+2表示第 3 个元素的地址。

61、若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++;则b和y的值分别是1,20。

62、已知整型变量a=3,b=4,c=5,写出逻辑表达式a||b+c>c&&b-c的值是 1 。

63、C程序设计的三种基本结构是________、________和________。

64、数组是表示类型相同的数据,而结构体则是若干类型不同数据项的集合。

定义成长整型变量的定义语句是long (int) a,b;

68、设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为1.5

69、已有定义:float x=5.5;则表达式:x=(int)x+2的值为7.000000

70、已有定义:int x=0,y=0;则表达式:(x+=2,y=x+3/2,y+5)后,变量x的值为2,变量y的值为3,

|| )。

75、设y为int型变量,请写出描述“y是奇数”的表达式(y%2!=0 )。

76、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式()。

77、在C语言中,二维数组元素在内存中的存放顺序是(行列)。

78、若有定义:double x[3][5];则x数组中行下标的下限为(0 ),列小标的上限为( 4 )。

79、若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][2]得到的初值是(8 )。

80、若自定义函数要求返回一个值,则应在该函数体中有一条(return )语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符(void )。

81、函数中的形参和调用时的实参都是数组名时,传递方式为(地址传递),都是变量时,传递方式为(值传递)。

73、1个74、与&&、或||、非! 75、y%2!=076、x

77、行列78、0,4 79、0,8 80、return,void

81、地址传送,值传送

填空题答案:

1、整型、浮点型、字符型。

2、int , 2 , -32768~ +32767

3、1111111111011101

4、-112

5、14,?m?

6、”a”是字符串常量,而?a?是字符常量。

7、存放地址值的变量或常量,或者答地址取运算对象的地址取指针变量所指的内容

8、a=1,b=3,c=2 9、-4 10、7,1

11、#号12、0 13、将变量c中的字符显示到屏幕上。

14、指针变量p为整型15、FILE *fp16、12

17、float double 18、0 20、12,6 21、该变量的地址

22、同一类型;不同类型23、++ % < = 24、注释

25、3, 1, 1, 6 1 2 26、字母、数字、下划线;以字母、下划线开头。

27、4,4 -12 29、打开;关闭。30、20 , 10 变量的交换

31、“d1.dat”, “rb”33、结束本次循环,进入下一次循环;结束循环。

34、2,1 35、#define符号常量常量

36、(x>20 && x<30)||x<-10037、分支结构,循环结果38、while do for

39、#include “stdio.h” # include “string.h”40、a[1][1]=0 , a[2][1]=0

41、* 指针运算符,&地址运算符42、分号;43、复合语句

46、非0

44、a=12,b=24,c=3645

47、编辑、编译、连接、执行48、“表达式”未尾加“;”号就成“语句”

49、没有50、顺序、分支、循环51、3

52、9 53、3 54、y%4==0&&y%100!=0||y%400==0

55、! && || 57、双引号58、26 59、5 60、三(3)

61、1,20 62、1 63、顺序结构、选择结构、循环结构64、类型不同

65、存储在外部介质上的相关数据集合。66、(1).C (2).OBJ (3).EXE(小写也正确)

67、(4)long(int) a,b;68、(5)1.5 69、(6)7.000000

70、(7)2 (8)3 (9)8 71、(10)7 72、(11)类型不同

73、1个74、与&&、或||、非! 75、y%2!=076、x

77、行列78、0,4 79、0,8 80、return,void

81、地址传送,值传送

===========================================================================

二、选择题(一)

1、设整型变量a为5,使b不为2的表达式是()。

A. b=a/2

B. b=6-(--a)

C. b=a%2

D. b=a>3?2:1

2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。

A. 缩排位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if

D.同一行上的if

3、以下程序的输出结果是( )。int x=10,y=10; printf(“%d %d\n”,x--,--y);

A. 10 10

B. 9 9

C. 9 10

D. 10 9

4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( b )。

A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i

5、选出下列标识符中不是合法的标识符的是()。

A. hot_do

B. cat1

C. _pri

D. 2ab

6、以下程序的输出结果是( a )。

int a=5; float x=3.14;

a*=x*(…E? - …A?);printf(“%f\n”,(float)a);

A. 62.000000

B. 62.800000

C. 63.000000

D. 62

7、设有说明double (*p1)[N];其中标识符p1是( c )。

A. N个指向double型变量的指针。

B. 指向N个double型变量的函数指针。

C. 一个指向由N个double型元素组成的一维数组的指针。

D. 具有N个指针元素的一维指针数组,每个元素都只能指向double型量。

8、在C程序中有如下语句:char *func(int x,int y); 它是()。

A. 对函数func的定义。

B. 对函数func的调用。

C.对函数func的原型说明。 D. 不合法的。

9、以下程序的输出结果是()。

char str[15]=”hello!”;

printf(“%d\n”,strlen(str));

A. 15

B. 14

C. 7

D. 6

10、分析以下程序的输出结果是()。

main()

{int a=5,b=-1,c;

c=adds(a,b);

printf(“%d”,c);

c=adds(a,b);

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

int adds(int x,int y)

{static int m=0,n=3;

n*=++m;

m=n%x+y++;

return(m); }

A. 2,3

B. 2,2

C. 3,2

D. 2,4

11、下列描述中不正确的是( c )。

A. 字符型数组中可能存放字符串。

B. 可以对字符型数组进行整体输入、输出。

C. 可以对整型数组进行整体输入、输出。

D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

12、以下程序的输出结果是()。

#define f(x) x*x

main()

{int a=6,b=2,c;

c=f(a)/f(b);

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

A. 9

B. 6

C. 36

D. 18

13、设有如下定义: int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是()。

A. 1

B. 0

C. 4

D. 3

14、定义如下变量和数组: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

C. 3 5 7

D. 3 6 9

15、以下对二维数组a进行正确初始化的是()

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

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

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

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

16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( c )。

int x;

scanf("%d",&x);

if(x++>5) printf("%d",x);

else printf("%d\n",x - -);

A. 7和5

B. 6和3

C. 7和4

D. 6和4

17、设有如下定义: char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( d )。

A)aa数组成元素的值分别是"abcd"和ABCD"

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa数组的两个元素中各自存放了字符'a'和'A'的地址

18、下列程序的输出结果是( d )。

char *p1="abcd", *p2="ABCD", str[50]="xyz";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

A. xyabcAB

B. abcABz

C. ABabcz

D. xycdBCD

19、下列程序的输出结果是( c )。

int a[5]={2,4,6,8,10},*P,* *k;

p=a; k=&p;

printf("%d",*(p++));

printf("%d\n",* *k);

A. 4 4

B. 2 2

C. 2 4

D. 4 6

20、不能把字符串:Hello!赋给数组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!";

1、C

2、C

3、D

4、B

5、D

6、A

7、C

8、

C 9、

D 10、A 11、C 12、C 13、D 14、C 15、B 16、C 17、D 18、D 19、C 20、B

选择题(二)

1、以下选项中属于C语言的数据类型是()。

A. 复合型

B. 双精度型

C. 逻辑型

D. 集合型

2、以下说法中正确的是()。

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

B. 在C语言程序中,要调用的函数必须在main()函数中定义

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为()。

A. p+1

B. a+1

C. a++

D. ++p

6、设有如下定义: int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。

A. 1

B. 0

C. 4

D. 3

7、定义如下变量和数组: 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]);的输出结果是()

A. 1 5 9

B. 1 4 7

C. 3 5 7

D. 3 6 9

9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。

if(x++>5) printf("%d",x);

else printf("%d\n",x - -);

A. 7和5

B. 6和3

C. 7和4

D. 6和4

10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是()。

A)aa数组成元素的值分别是"abcd"和ABCD"

B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

D)aa数组的两个元素中各自存放了字符'a'和'A'的地址

11、以下语句的输出结果是()。

int a=-1,b=4,k;

k=(+ +a<0)&&!(b - -<=0);

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

A. 1,0,4

B. 1,0,3

C. 0,0,3

D. 0,0,4

15、下列程序执行后输出的结果是()。

int d=1;

fun (int p)

{ int d=5;

d + =p + +;

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

main( )

{ int a=3;

fun(a);

d + = a + +;

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

A. 8, 4

B. 9, 6

C. 9, 4

D. 8, 5

16、表达式:10!=9的值是()。

A. true

B. 非零值

C. 0

D. 1

17、若有说明: int i,j=7, *p=&i;, 则与i=j;等价的语句是()。

A. i= *p;

B. *p=*&j;

C. i=&j;

D. i=* *p;

1、B

2、C

3、D

4、C

5、C

6、D

7、C

8、D

9、C 10、D 11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D

选择题(三)

1.设int x=1,y=1;表达式(!x++ || y--)的值是_________

A.0 B.1 C.2 D.-1

2.main( )

{ int n;

(n=6*4,n+6),n*2;

printf(“n=%d\n”,n); }此程序的输出结果是______________.

A.30 B. 24 C. 60 D. 48

3.若有如下定义,则__________是对数组元素的正确的引用。

int a[10] , *p ;

p=a ; p=a ; p=a ; p=a ;

A. *&a[10]

B. a[11]

C. *(p+10)

D. *p

4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________

A. 0

B. 4

C. - 4

D. 2

5.以下不能正确定义二维数组的语句是___________

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

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

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

6.程序段的功能是将变量u 、s中的最大值赋给变量t 。

A. if(u>s) t=u;t=s;

B. t=u; if(t) t=s;

C. if(u>s) t=s;else t=u; D . t=s; if(u ) t=u;

7.下列程序段的输出结果是。

void main()

{ int k;

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

{ if(k%2!=0)

printf("#");

else printf(“*”);}}

A. #*#* B . *#*# C. ## D. 以上都不对

8.设变量定义为int a[3]={1,4,7}; *p=&a[2]; 则*p的值是(35)。

A. &a[2]

B. 4

C. 7

D. 1

9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。

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

10.C语言中,合法的字符型常数是_________。

A.…A?B.“A”C.65 D.A

11.设有数组定义:cha r array[]=”China”;则数组所占的空间是________。

A.4个字节B.5个字节C.6个字节D.7个字节

12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。

A.?a?<=c<=?z?B.(c>=?a?) || (c<=?z?)

C.(…a?<=c)and(…z?>=c)D.(c>=?a?) && (c<=?z?)

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

A.printf(“x=%d\n”,x);B.printf(“x=%ld\n”,x);

C.printf(“x=%8dl\n”,x);D.printf(“x=%LD\n”,x);

14.下列关于指针定义的描述,___________是错误的。

A.指针是一种变量,该变量用来存放某个变量的地址值的。

B.指针变量的类型与它所指向的变量类型一致。C.指针变量的命名规则与标识符相同。

D.在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。

15.已知:int x; int y[10];下列______是合法的。

A.&x B.&(x+3) C.&5 D .&y

16.指出下面正确的输入语句__________。

A. scanf(“a=b=%d”,&a,&b) ;

B. scanf(“%d,%d”,&a,&b) ;

C. scanf(“%c”,c) ;

D. scanf(“% f%d\n”,&f) ;

17.C语言中以追加方式打开一个文件应选择_______________参数。

A.“r”B.“w”

C.“rb”D.“a”

18.Break语句的正确的用法是( )。

A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。

B. 在多重循环中,只能退出最靠近的那一层循环语句。

C. 跳出多重循环。

D. 只能修改控制变量。

19. 为表示关系x≥y≥z,应使用C语言表达式

A.(x>=y)&&(y>=z) B. (x>=y)AND(y>=z)C.(x>=y>=z) D. (x>=z)&(y>=z) 20.以下可以作为C语言合法整数的是________。

A.1010B B. 0368C.0Xffa D. x2a2

21.在函数中默认存储类型说明符的变量应该是________存储类型。

A.内部静态 B. 外部C.自动 D. 寄存器

1 B 2B 3D 4C 5D 6C 7A 8C 9D 10A 11C 12D 13B 14D 15A 16B 17D 18B 19A 20C 21C

选择题(四)

1、下列属于整型常量的是________。

A、12

B、12.0

C、-12.0

D、10E10

2、不属于字符型常量的是_________。

A.…A?B、'a' C、“A”D、'b'

3、下列表达式为关系表达式的为_________。(其中a为一整型变量)

A.3+4*5B、a==10C、a>0?a:-a D、a=1

4、下面不正确的赋值语句是_____________。

A.a=a+1B、a= =b C、a+=b D、a=1

5、下列对数组定义不正确的语句是______________。

A.int m[5];B、char b[]={…h?,?e?};

C、int a[10]={1,6,8,4};

D、char p[];

6、若有以下定义,则______和______是对数组元素的正确引用。 int a[5],*p=a

A.*&a[6] B、*p+8 C、*(a+2) D、*p

7、执行下列语句后,a的值是______。

int a=8; a+=a-=a*a;

A.-240 B、64 C、112 D、-112

8. 指出下面正确的输入语句()。

A. scanf(“a=b=%d”,&a,&b);

B. scanf(“%d,%d”,&a,&b);

C. scanf(“%c”,c);

D. scanf(“%f\n”,&f);

9.下面的变量说明中正确的是____________。

A.int:a, b, c;B.int a; b; c;C.int a, b, c D.int a, b, c;

10. C语言用()表示逻辑“真”值。

A.True B. t 或y C. 非零整型值 D. 整型值0

11.若x=5,y=4 则y*=x+5; 时y的值为( ).

A. 40

B. 20

C. 15

D. 30

14.Break语句的正确的用法是( )。

A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。

B. 在多重循环中,只能退出最靠近的那一层循环语句。

C. 跳出多重循环。

D. 只能修改控制变量。

15.两个指针变量的值相等时,表明两个指针变量是________________。

A. 占据同一内存单元。

B. 指向同一内存单元地址或者都为空。

C. 是两个空指针。

D. 都没有指向。

16.字符串指针变量中存入的是________________。

A.字符串的首地址。 B. 字符串C.第一个字符 D. 字符串变量。17.以_______________个是不正确的描述。

A. 不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。

B. 在定义函数时,必须指定形参的类型。

C. 形参和实参之间可以是值传递。

D. 数组名可以作为参数进行传递。

18 表达式“1?(0?3:2):(10?1:0)”的值为_____________________。

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

19. 为表示关系x≥y≥z,应使用C语言表达式

A.(x>=y)&&(y>=z) B. (x>=y) AND (y>=z) C.(x>=y>=z) D. (x>=z)&(y>=z) 20.以下说法中正确的是_______________。

A.C语言程序总是从第一个定义的函数开始执行。

B.在C语言程序中,要调用的函数必须有main( ) 函数中定义。

C.C语言程序总是从main( ) 函数开始执行。

D.C语言程序中的main( ) 函数必须放在程序的开始部分。

21.设有数组定义:char array[]=”China”;则数组所占的存贮空间为__________。

A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节

22.根据C语言的语法规则,下列________个是不合法标识符。

A.While B. Name C. Rern5 D. _exam

1、 A

2、 C

3、 B

4、 B

5、 D

6、C D

7、 D

8、 B 9、 D 10、C 11、A. 13、D 14、B

15、A. 16、A 17、A. 18、B 19、A 20、C 21、C 22、A

选择题(五)

⑴.在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为()

A.FILE B.RUN C.EDIT D.OPTION

⑵.下列语句不具有赋值功能的是()

A.a*=b B.x=1C.a+b D.a++

⑶.C语言程序中,当出现条件分支语句if~else时,else与()组成配对关系

A.同一复合语句内部的if B.在其之前任意的if

C.在其之前未配对的最近的if D.首行位置相同的if

⑷.下列数组定义方式不正确的语句是()

A.char x[5];B.char y[]={…h?,…e?,…l?,…l?,…o?};

C.int x[10]={12,13,14,15}; D.int y[];

⑸. 若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用

int a[]={1,2,3,4,5},*p,i;

p=a;

A.*(a+2) B.a[p-3] C.p+2 D.a+3

⑹. 下列()表达式的值为真

a=5; b=8; c=10; d=0

A.a*2>8+2B.a&&d C.(a*2-c)||d D.a-b

⑺. 下列字符数组长度为5的是()

A.char a[]={…h?,…a?,…b?,…c?,…d?};

B.char b[]={…h?,…a?,…b?,…c?,…d?,…\0?};

C.char c[10]={…h?,…a?,…b?,…c?,…d?};

D.char d[6]={…h?,…a?,…b?,…c?,…\0?}

⑻. 执行下列程序后,其结果为()

int a[]={2,4,6,8,10,12}; *p;

p=a;

*(p+4)=2;

printf(“%d,%d\n”,*p,*(p+4));

A.0,10 B.0,2 C.2,10 D.2,2

⑼. 有下列结构体,对该结构体变量stu的成员项引用不正确的是()

struct student

{ int m;

float n;

} stu ,*p;

A.stu.n B.p->m C.(*p).m D.p.stu.n

⑽.下列函数中不能用于对文件进行输入输出操作的是()

A.fscanf( )B.printf( )C.fgetc( )D. fputs( )

⑴.B ⑵.C ⑶. C ⑷. C ⑸. A ⑹.D ⑺.A ⑻. D ⑼. D ⑽.B

选择题(六)

1.一个C语言程序是由()构成。

A.语句B.行号C.数据D.函数

2.下面标识符中正确的是()。

A.a#bc B.123ABC C.sime D.Y·M·D

3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是()。

A.2、1、8 B.4、1、4 C.4、1、4 D.2、2、8

4、为了避免嵌套的条件分支语句if--else中的else总是与()组成成对关系。

A. 缩排位置相同的

B. 在其之前未配对的

C. 在其之前未配对的最近的if

D. 在同一行上的if 5.下列表达式的结果正确的是()。

int a,b,c,d;

a=b=c=d=2;

d=a+1==3?b=a+2:a+3

A.2 B.4 C.3 D.5

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

选择题7

1.一个C语言程序是由()构成。

A.语句B.行号C.数据D.函数

2.下面标识符中正确的是()。

A.d&ef B.6a C.z4x5c D.a3/b4

5.下列表达式的结果正确的是()。

int aa,bb,cc,dd;

aa=bb=cc=dd=1; sp; aa=bb=cc=dd=1; sp; aa=bb=cc=dd=1;

(aa+1==2)?bb=aa+2:aa+3

A.2 B.3 C. 1 D.5

6.设有int x=11 ;则表达式(x+1/3)的值是()。

A.3 B. 4 C. 11 D.12

7.设有字符串A=“He has 钱!”,则该字符串的长度为()。

A. 9

B. 10

C. 11

D. 8

8.有如下程序段,则正确的执行结果是()

int m=3;

while(m<=5)

{ printf(“%d ”,m-3); m++;}

A.0 0 0 B.0 1 2 C.1 2 3 D.无结果

9.执行语句:printf("%d",(a=2)&&(b= -2);后,输出结果是()。

A.无输出B.结果不确定C.-1 D. 1

10.有如下定义类型语句,若从键盘输入数据,正确的输入语句是()。

int x; char y; char z[20];

A. scanf("%d%c%c",&x,&y,&z);

B. scanf("%d%c%s",&x,&y,&z);

C. scanf("%d%c%c",&x,&y,z);

D. scanf("%d%c%s",&x,&y,z);

11. struct ex

{ int x ; float y; char z ;} example;

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

A. struct结构体类型的关键字

B. example是结构体类型名

C. x,y,z都是结构体成员名

D. struct ex是结构体类型

12.在C语言中对于实型数组,其每个数组元素的类型是( )。

A. 实型

B. 整型

C. 可以为任何类型

D. 不确定

13. 若已定义:int a[9],*p=a;不能表示a[1] 地址的表达式是( )。

A. p+1

B. a+1

C. a++

D. ++p

14. 在TC2.0环境中,对文件进行保存使用的命令是( )。

A. OPEN

B. SAVE

C. LOAD

D. WRITE TO

15.在C++的类中,用于表示公共类型的关键字是( )。

A. class

B. private

C. protect

D. public

1.D 2. C 3. A 4. C 5. B 6.C 7. B 8. B 9. D 10. D 11.B 12. A 13. C 14. B 15. D

选择题8

1. 下列不正确的转义字符是()

A.\\B.\?C.074D.\0

2. 不是C语言提供的合法关键字是()

A.switch B.cher C.case D.default

3.正确的标识符是()

A.?a B.a=2C.a.3D.a_3

4.下列字符中属于键盘符号的是()

A.\B.\n C.\t D.\b

5.下列数据中属于“字符串常量”的是()

A.ABC B.“ABC”C.…ABC? D.…A?

6.char型常量在内存中存放的是()

A.ASCII码B.BCD码C.内码值D.十进制代码值

7.设a为5,执行下列语句后,b的值不为2的是()

A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:2

8.在以下一组运算符中,优先级最高的运算符是()

A.<=B.=C.%D.&&

9.设整型变量i的值为3,则计算表达式i---i后表达式的值是()

A.0 B.1 C. 2 D.表达式出错

10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是()

A.6 B.9 C.8 D.表达式出错

11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是()

A.1 B.2 C.2.0 D.2.5

12.设a=1,b=2,c=3,d=4,则表达式:a

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

13.设a为整型变量,不能正确表达数学关系:10

A.10

C.a>10&&a<15D.!(a<=10)&&!(a>=15)

14.若有以下定义:char a、 int b 、 float c 、 double d,则表达式a*b+d-c值的类型为()A.float B.int C.char D.double

15.表达式“10!=9”的值是()

A.true B.非零值C.0 D.1

16.循环语句for (x=0,y=0; (y!=123)|| (x<4);x++);的循环执行()

A.无限次B.不确定次C.4次D.3次

17.在C语言中,下列说法中正确的是()

A. 不能使用“do while”的循环

B.“do while”的循环必须使用break语句退出循环

C.“do while”的循环中,当条件为非0时将结束循环

D.“do while”的循环中,当条件为0时将结束循环。

18.设a,b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b)后使a为?A?,b为?B?,从键盘上的正确输入是()

A.?A? …B?B.?A?,?B?C.A=A,B=B D.a=A,b=B

19.设i,j,k均为int型变量,执行完下面的for循环后,k的值为()

for (i=0,j=10;i<=j;i++,j--)k=i+j;

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

20.设有定义:char s[12]={“string”};则printf (“%d\n”,strlen(s));的输出是()A.6 B.7 C.11 D.12

21.合法的数组定义是()

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}

22.函数调用strcat(strcpy(str1,str2),str3)的功能是()

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

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

C.将字符串str1复制到字符串str2中后再复制到字符串str3之后

D.将字符串str2连接到字符串str1中后再将字符串str1复制到字符串str3中

23.设有如下定义,则正确的叙述为()

char x[]={“abcdefg”};

char y[]={…a?,?b?,?c?,?d?,?e?,?f?,?g?};

A.数组x和数组y等价B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度

24.设有单精度变量f,其值为13.8。执行语句“n=((int)f)%3;”后,n的值是()A.4 B.1 C.4.333333 D.4.6

25.执行语句“f=(3.0,4.0,5.0),(2.0,1.0,0.0);”后,单精度变量f的值是()A.3.0 B.5.0 C.2.0 D.0.0

26.设a、b均为整型变量,下列表达式中不是赋值表达式的是()

A.a=3,4,5B.a=3*2C.a=a&&b D.a=b=4

27.表达式“1?(0?3:2): (10?1:0)”的值为()

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

28.sizeof(double)的结果值是()

A.8 B.4 C.2 D.出错

29.指出下面正确的输入语句是()

A.scanf (“a=b=%d”,&a,&b);B.scanf(“a=%d,b=%f”,&m,&f);

C.scanf(“%3c”,c);D.scanf(“%5.2f,&f);

30.若有以下定义和语句,且0<=i<5,则()是对数组元素地址的正确表示

int a[]={1,2,3,4,5},*p,i; p=a;

A.&(a+i) B.&p C.a++ D.&p[i]

1.C

2. B

3. D

4. A

5. B

6. A

7. C

8. C

9. A 10. A 11. C 12. D 13. A 14. D 15. D 16. C 17. D 18. D 19. A 20. B 21. D 22. A 23. C 24. B 25. D 26. D 27. B 28. A 29. B 30. C

选择题9

1.在PC机中,‘\n’在内存占用的字节数是()

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

2.字符串“ABC”在内存占用的字节数是()

A.3 B. 4 C.6 D.8

3.在C语言中,合法的长整型常数是()

A.0L B.4962710 C.0.054838743 D.2.1869 e10

4.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次是()

A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2

5.设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是()

A.3 B.0 C.9 D.-12

6.设int k=32767;执行k=k+1;后k值为()

A.32768 B.-32768 C.0 D.-1

7.下列正确的标识符是()

A.hot_do B.a+b C.test! D.%y

8.设int a=5,使b不为2的表达式是()

A.b=6-(--a) B.b=a%2 C.b=a/2 D.b=a>3?2:1

9.执行x=(6*7%8+9)/5;后,x的值为()

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

10.执行语句x=(a=3,b=a--)后,x,a,b的值依次为()

A.3,2,3 B.2,3,2 C.3,3,2 D.3,2,2

11.设a=-3;执行(a>0)?a:-a;后,a的值为()

A.3 B.1 C.0 D.-3

12.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为()

A.7 B.8 C.9 D.2

13.下面正确的字符常量是()

A.”c”B.’\\’’C.’W’ D. ‘’

14.若有代数式3ae/bc,则不正确的c语言表达式是()

A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/c*3

15.在C语言中,要求运算数必须是整型的运算符是()

A./ B.++ C.!= D.%

16.若有说明语句:char c=’\72’;则变量c ( )

A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c值不确定17.sizeof (float)是()

A.一个双精度型表达式B.一个整型表达式C.一种函数调用 D 一个不合法的表达式18.设变量a 是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型是()A.int B.folat C.double D.不确定

19.若有定义int a[10],*p=a;,则p+5表示()

A.元素a[5]的地址B.元素a[5]的值C.元素a[6]的地址D.元素a[6]的值

20.以下与int *q[5];等价的定义语句是()

A.int q[5]; B.int * q C.int (q[5]) D.int (*q)[5]

21.若有定义int a[5],*p=a;则对a数组元素地址的正确引用是()

A.P+5 B.*a+1 C.&a+1 D &a[0]

22.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是()

A.auto B.static C.extern D.register

23.若用数组名作为函数调用的实参,传递给形参的是()

A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值 D .数组元素的个数24.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()

A.float B.int C.long D.double

25.以下对二维数组a的正确说明是()

A.int a[3][] B.float a(3,4) C.double a[1][4] D.float a(3)(4)

26.若有说明int a[3][4];则对a数组元素的正确引用是()

A.a[2][4] B.a[1,3] C.a[1+1][0] D.a(2)(2)

26.语句while(!E);中的表达式!E等价于()

A.E= =0 B.E!=1 C.E!=0 D.E= =1

27.C语言中while和do—while循环的主要区别是()

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

B.While的循环控制条件比do—while的循环控制条件严格

C.do—while允许从外部转到循环体内D.do—while循环体不能是复合语句

28.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else子句总与()配对A.缩排位置相同的if B.其之前最近的if C.其之后最近的if D.同一行上的if 29.判断char型变量ch是否为大写字母的正确表达式是()

A.’A’<=ch<=’Z’B.(ch>=’A’)&(ch<=’Z’)

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

30.以下能正确定义整型变量a、b、c并为其赋初值5的语句是()

A.int a=b=c=5; B.int a,c, c=5; C.a=5,b=5,c=5; D.a=b=c=5;

1.A.2.B.3.A 4. C 5. D 6. B 7. A 8. B 9. B 10. A 11. D 12. A 13. C 14. C 15. D 16. A 17. B 18. C 19. A 20. D 21. D 22. A 23. A 24. B 25. C 26. A 27. A 28. B 29. C 30. A

选择题10

11.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________

A.算术表达式

B.逻辑表达式

C.关系表达式

D.字符表达式

13.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?

A.11

B.12

C.14

D.15

15.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________

A.0

B.2

C.-4

D. 4

16.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________

A. 3, 3, 2

B. 3,2,2

C.3,2,3

D.2,3,2

17.如果X=5,执行语句X*=X+=X*3后,则X的值为__________

A.100

B. 400

C. 450

D. 900

18.下列常量中哪个是不合法的_________________

A.2e32.6 B. 0.2e-5 C. “basic” D. 0x4b00

19.下列标识符错误的是_______

A. x1y

B._123

C. 2ab

D. _ab

20. c语言中int型数-8在内存中的存储形式为_____

A.1111111111111000

B. 1000000000001000

C. 0000000000001000

D. 1111111111110111

10.C 11.B 12.C 13.D 14.C 15.C 16.C 17.B 18.A 19.C 20.A

选择题11

2.在C语言中,非法的八进制是:()

A.016

B.018

C.017

D.02

3. 不是C语言实型常量的是:()

A.55.0

B.0.0

C.55.5

D.55e2.5

4 .字符串“xyzw”在内存中占用的字节数是:()

A.6

B.5

C.4

D.3

5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:()

A.2.0

B.2.25

C.2.1

D.1.5 D.1.5 D.1.5 D.1.5

6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:()

A.M,2

B.G,3

C.G,2

D.D,g

7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是:()

A.a=2.2,b=3

B.a=2.2 b=3

C.2.2 3

D.2.2,3

8.表示关系12<=x<=y的C语言表达式为:()

A.(12<=x)&(x<=y)

B. (12<=x)&&(x<=y)

C. (12<=x)|(x<=y)D.(12<=x)||(x<=y)

9.设x=1,y=2,m=4,n=3,则表达式x>y?x:m

A.1

B.3

C.2

D.4

10. 若有说明和语句:int a=5,b=6;b*=a+1;则b的值为:()

A.5

B.6

C.31

D.36

11. 设整型变量s,t,c1,c2,c3,c4的值均为2,则执行语句(s=c1==c2)||(t=c3>c4)后,s,t的值为:()

A.1,2

B.1,1

C.0,1

D.1,0

12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:()

A.4

B.6

C.5

D.1

13. 对于for(s=2;;s++)可以理解为:()

A.for(s=2;0;s++)

B.for(s=2;1;s++)

C. for(s=2;s<2;s++)

D.for(s=2;s>2;s++)

14. 若有char h=`a`,g=`f`;int a[6]={1,2,3,4,5,6};则数值为4的表达式为:()

A.a[g-h]

B.a[4]

C.a[`d`-`h`]

D.a[`h`-`c`]

15. 设:char s[10]={“october”};则printf(“%d\n”,strlen(s));输出是:()

A.7

B.8

C.10

D.11

16. 若有int a[3][5]={2,2},{2,6},{2,6,2}},则数组a共有个元素:()

A.8

B.5

C.3

D.15

17. 设int a=5,b,*p=&a;则使b不等于5的语句为: ()

A.b=*&a

B.b=*a

C.b=*p

D.b=a

18. 若有int a[7]={1,2,3,4,5,6,7};*p=a则不能表示数组元素的表达式是: ()

A.*p

B.*a

C.a[7]

D.a[p-a]

19. 若有int b[4]={0,1,2,3}; 则*p数值不为3的表达式是: ()

A.p=s+2,*(p++)

B.p=s+3,*p++

C. p=s+2,*( ++p)

D.s[3]

20.设有如下定义:struct jan{int a;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引用是:()

A.(*p).c2.a

B.(*p).a

C.p->c2.a

D. p.c2.a

1.D

2.B

3.D

4.B

5.B

6.B

7.A

8.B

9.B 10.C

11.A 12.C 13.B 14.C 15.A 16.D 17.B 18.C 19.A 20.B

选择题12

1.可选作用户标识符的一组标识符是()

A void

B c5_b8

C For

D 3a

Define _53 -ab DO

WORD IF Case int

2.在C语言中,非法的八进制是:()

A.018

B.016

C.017

D.0257

3.在TC中,基本int a[4]类型变量所占的字节数是()

A.1

B.2

C.4

D.8

4.设x,y,z,k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()

A.4

B.16

C.32

D.52

5.设int型变量a为5,使b不为2的表达式是()

A.b=a/2

B.b=6-(-a)

C.b=a%2

D.b=a>3?2:1

6.一个C程序的执行是从()

A.main()函数开始,直到main()函数结束。

B.第一个函数开始,最后一个函数结束。

C.第一个语句开始,最后一个语句结束。

D.main()函数开始,直到最后一个函数。

7.C语言中用于结构化程序设计的三种基本结构是()

A.if、switch、break

B.if while for

C.while do- while for

D.顺序结构、选择结构、循环结构

8.以下叙述中不正确的是()

A.在不同的函数中可以使用相同名字的变量。

B.函数中的形式参数是局部变量。

C.在一个函数内的符合语句中定义变量在本函数范围内有效。

D.在一个函数内定义的变量只在本函数范围内有效。

9.若k为int 类型,且k的值为3,执行语句k+=k-=k*k后,k的值为()

A.-3

B.6

C.-9

D.-12

10.有以下程序

main()

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

printf(“%d %d\n”(++x,y++),++z);} 输出结果()

A.3 3

B.3 4

C.4 2

D.4 3

11.若有定义和语句:int a=21,b=021; printf(“%x,%d \n”,a,b);输出结果()

A.17,15

B.16,18

C.17,19

D.15,17

12.已有定义语句:int x=3,y=4,z=5;则值为0的表达式是()

A.x>y++

B.x<=++y

C.x!=y+z>y-z

D.y%z>=y-z

13.能正确表达逻辑关系“a≥10或a≤0”的C语言表达式是()

A.a>=10 or a<=0

B.a>=10||a<=0

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

D.a>=10|a<=0

14.n为整型常量,且n=2;while(n--);printf(“%d”,n);执行后的结果是:()

A.2

B.1

C.-1

D.0

15.若有以下定义和赋值double *q,a=5.5; int *p,i=1; double *q,a=5.5;int *p,i=1; p=&i; q=&a; 以下对赋值语句叙述错误的是( )。

A)*p=*q变i中的值。B)p=oxffd0;将改变p的值,使p指向地址为ffd0的存储单元。

C)*q=*p;等同于a=i; D)*p=*q;是取q所指变量的值放在p所指的存储单元

16.若有以下定义语句double a[8],*p=a; int i=5; 对数组元素错误的引用是( )

A)*a B) *a[5]C)*(p+i) D)p[8]

17.以下选项中不能使指针正确指向字符串的是( )

A) char *ch;*ch=“hello”B) char *ch=“hello”

C) char *ch=“hello”;ch=“bye”D) c har *ch”;ch=“hello”

18.若有以下说明和定义语句:union uti {int n;double g;char ch[9];} struct srt{float xy;union uti uv;}aa;则变量aa所占内存的字节数是()

A) 9 B) 8 C) 13 D) 17

1.B

2.A

3.B

4.C

5.C

6.A

7.D

8.C

9.D 10.B 11.D 12.A 13.B 14.C 15.B 16.D 17.A 18.C

14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib) 无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?

A.File\Change B. File\Directory

C. Option\Directories

D.TC系统出故障了,应重新安装TC环境。

16.定义结构体的关键字是_______________

A. union

B. enum

C.struct

D.typedef

18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?

A.当然可以 B.不可以 C.无所谓 D.最好不要移动首指针

19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____

A. <类型标识符> (*a)[3]

B. <类型标识符> *a[2]

C. <类型标识符> *a[3]

D.以上写法都不对。

14 C 16 C 18 B 19 C

===========================================================

判断题

1. C 语言源程序文件通过了编译、连接之后, 生成一个后缀为.EXE 的文件。( )

2.在C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。()

3.在C 程序中, APH和aph 代表不同的变量。()

4.表达式0195 是一个八进制整数。()

5.表达式_ya是不合法的C语言标识符。( )

6.C程序总是从main( ) 函数的第一条语句开始执行的。()

7.A-=7等价于a=a-7。()

8.利用fclose函数关闭已打开的文件。()

9.数组名可以作为参数进行传递。()

10.执行printf("%x",12345);语句, 输出12345 。()

1√ 2Ⅹ3√ 4Ⅹ5Ⅹ6√ 7√ 8√ 9√ 10Ⅹ

5.Continue语句的作用是结束本次循环。()

6.Extern变量的生命期是整个程序执行期。()

7.C语言中字符串的结束符是?\0?。()

10.数组名代表数组的首地址。()

5√6√7√8√9√10√

1.函数一般由函数的说明部分和函数体部分组成。( )

2.C语言中数据类型只有整型、实型和字符型。( )

3.数组的下标从1开始。( )

4.假设有int a[10], *p; 则P=&a[0]与p=a等价。( )

5.getchar()函数的功能是从键盘上输入一个字符串。( )

6.在C语言中定义一个文件指针的方法为:FILE *fp;。( )

7.构成数组的各个元素可以有不同的数据类型。( )

8.C语言的数据类型只有int 型和float 型。( )

9.从循环体中退出只能使用goto语句。( )

10.Continue语句的作用是继续程序中的下一个循环。( )

1. 对

2. 不对

3. 不对

4. 对

5.不对

6. 对

7. 不对

8. 不对

9. 不对10.不对

===================================================================

读程序

1.main()

{int a=2,b=3,c;

c=a;

if (a>b) c=1;

else if (a= =b) c=0;

else c=-1;

pri ntf (“%d\n”,c);} 运行结果:

2.main()

{int a=2,b=7,c=5;

switch (a>0)

{ case 1: swithch (b<0)

{case 1:printf(“@”);break;

case 2:printf(“!”);break;

}

case 0: switch (c= =5)

{ case 0:printf(“*”);break;

case 1:printf(“#”),break;

default:printf(“#”);break;

}

default:printf(“&”); 运行结果:

} printf (“\n”);

}

3.#include

main()

{ int i;

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

switch (i%5)

{ case 0:printf(“*”);break;

case 1:printf(“#”);break;

default:printf(“\n”);

case 2:printf (“&”); 运行结果:

}

}

4.main()

{ int i,b,k=0;

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

{b=i%2;

while (b-->=0) k++;

} 运行结果:

printf (“%d,%d”,k,b);

}

5. #include

main()

{ char ch[7]={“12ab56”};

int i,s=0;

for (i=0;ch[i]>=?0?&&ch[i]<=?9?;i+=2)

s=s*10+ch[i]-…0?; 运行结果:

printf (“%d\n”,s);

}

6. main()

{ int a=2,i;

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

printf (“%4d”,f(a));

}

f(int a)

{ int b=0;static int c=3;

b++;c++; 运行结果:

return(a+b+c);

}

1.-1 2.& 3.#&(换行)(换行)* 4.8,-2 5.1 6. 7 8 9 1.写出下列程序段的输出结果:

main()

{int x=5; int y=10;

printf("%d\n",x++);

printf("%d\n",++y); }

2.下面程序的输出结果是什么?

#include "stdio.h"

main()

{ int x=3;

switch(x)

{ case 1:

case 2:printf("x<3\n");

case 3:printf("x=3\n");

case 4:

case 5:printf("x>3\n");

default:printf("x unknow\n"); } }

3.根据源程序,写出相应的数学表达式

#include “stdio.h”

main()

{ int x,y;

scanf(“%d”,&x);

if (x<0) y= -1;

else if (x== 0)

y=0;

else y=1;

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

4. 读出下列程序的输出结果:

main()

{ int a=1,b=1,c=1;

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

a+=b+=++c;

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

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

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

1. 5

2. X=3 4. 1,1,1 3.x<0

11 X>3 4,3,2 y= 0 x=0

X unknow 4,2,3 1 x>0

5,2,3

1. main()

{ int a=1,c=65,d=97;

printf(“a10=%d,a8=%o,a16=%x\n”,a,a,a);

printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);

d++;

printf(“d10=%d,dc=%c\n”d,d);}

2. main()

{ int y=9,k=1;

for(;y>0;y--)

{if(y%3==0){printf(“%4d”--y);continue;}

k++;}

printf(“\nk=%4d,y=%4d\n”,k,y);}

3. #include “stdio.h”

main( )

{int k,j;

int a[]={3,-5,18,27,37,23,69,82,52,-15};

for(k=0,j=k;k<10;k++)

if(a[k]>a[j])j=k;

printf(“m=%d,j=%d\n”,a[j],j);}

4. main( )

{char *p,s[]=“ABCD”;

for ( p=s;p

printf(“%s\n”,p);}

1.a10=1,a8=1,a16=1

c10=65,c8=101,c16=41,cc=A

d10=98,dc=b

2.8 5 2

k=4 y=0

3.m=82,j=7

4.ABCD

BCD

CD

D

1. main()

{int a=1,c=65,d=97;

printf(“a8=%o,a16=%x\n”,a,a);

printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);

d++;

printf(“d10=%d,dc=%c\n”d,d);}

程序运行结果为:

2.有以下程序

void f(int x,int y)

{int t;

if(x

main()

{int a=4,b=3;c=5;

f(a,b); f(a,c); f(b,c);

printf(“%d,%d,%d”,a,b,c);}执行后的结果是:()

3.程序执行的结果是()

main()

{int i=0,a=2;

if(i==0)printf(“**”);

else printf(“$$”);

printf(“*”);}

4.有以下程序

main()

{int sum=0,n;

scanf(“%d”,&n);

while(n<=5)

{sum+=n;

n++;}

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

当输入:1 程序运行的结果为()

5.执行以下程序段,输出的结果为()

main()

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

int *p,m;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

printf(“m=%d”,m);}

1.a8=1,a16=1

2. 4,3,5

3. ***

4.sum=15

5. m=56 c10=65,c8=101,c16=41,cc=A

d10=98,dc=b

4.标记出变量p、q、a、b、c、x、y和c1的作用范围和变量性质(局部、全局)

int p=1,q=5;

float f1(int a)

{int b,c;

char ch;

}

char c1;

char f2(int x,int y)

{int i,j;

6.分析下列程序所完成的功能。

main()

{int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;

scanf("%d,%d,%d",pa,pb,pc);

if (*pa>*pb)

p=pa,pa=pb,pb=p;

if (*pa>*pc)

p=pa,pa=pc,pc=p;

if (*pb>*pc)

p=pb,pb=pc,pc=p;

printf("%d<=%d<=%d",*pa,*pb,*pc); }

4. 标记出变量p、q、a、b、c、x、y和c1的作用范围和变量性质(局部、全局) int p=1,q=5;

float f1(int a)

{int b,c;

char ch; 全局变量P、Q在此范围内有效

… 局部变量a,b,c和ch在此范围内有效

}

char c1; 全局变量C1从此开始向下的范围内有效

char f2(int x,int y)

{int i,j; 局部变量X、Y在函数f2中有效

……

6. 从小到大排序。

1、float f=3.1415927;

printf(“%f,%5.4f,%3.3f”,f,f,f);

则程序的输出结果是。

2、int x=6, y=7;

printf(“%d,”,x++);

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

程序的输出结果是。

3、a=3;

a+=(a<1)?a:1;

printf(“%d”,a);

结果是。

4、for (a=1,b=1;a<=100;a++)

{ if(b>=20) break;

if(b%3==1)

{b+=3; continue;}

b-=5; }

程序的输出结果a的值为。

5、 int y=1, x, *p, a[ ]={2,4,6,8,10};

p=&a[1];

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

y + = * (p + x);

printf("%d\n",y);

程序的输出结果y的值是。

(1) 3.141593,3.1416,3.142 (2) 6,8 (3) 4 (4) 22 (5) 19

4、main( )

{ int a[5]={2,4,6,8,10},*P,* *k;

p=a; k=&p;

printf("%d,",*(p++));

printf("%d\n",* *k); }

程序的输出结果是。

5、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; } }

程序的输出结果a的值为。

(4) 2,4 (5) 8

2.写出下列程序的运行结果。

fun(int a, int b)

{ if(a>b) return (a);

Else return (b); }

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

4. 写出下列程序的运行结果。

main()

{ int n;

For(n=3; n<=10; n++)

{ if(n%5= =0) break;

Printf(“%d”,n); } }

5.写出下列程序的运行结果。

#include “stdio.h”

main()

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

int m,n,*p;

p=&a[0]; p=&a[0];

m=*(p+2);

n=*(p+4);

printf(“%d %d %d ”,*p,m,n); }

2、12 4. 3 4 5、1 3 5

2.写出下列程序的运行结果。

fun(int a, int b)

{ if(a>b) return (a);

Else return (b); }

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z); printf(“%d\n”,r); } 4. 写出下列程序的运行结果。

main()

{ int n;

For(n=3; n<=10; n++)

C语言程序设计模拟精彩试题3(附问题详解)

《C语言程序设计》模拟试卷三 一、填空题。(每空2分,共16分) 1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。2.一个C语言文件是由若干个组成。 3.设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为。 4.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式。5.若有如下图所示五个连续的int类型的存储单元并赋值如下图,a[0]的地址小于a[4]的地址。p和s是基类型为int的指针变量。请对以下问题进行填空。 a[0] a[1] a[2] a[3] a[4] (1)若p已指向存储单元a[1]。通过指针p,给s赋值,使s指向最后一个存储单元a[4]的语句是。(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p的值是。 二、单项选择题。(每题2分,共40分) 1.设有int x=11; 则表达式(x++ * 1/3) 的值是()。 A) 3 B) 4 C) 11 D) 12 2.下列程序的输出结果是()。 A) 3 B) 3.2 C) 0 D) 3.07 main() {double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf(“%d \n”, d*y); } 3.下列程序执行后的输出结果是(小数点后只写一位)()。 A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0

main() { double d; float f; long l; int i; i=f=l=d=20/3; printf("%d %ld %f %f \n", i,l,f,d); scanf("%d",&d); } 4.下列变量定义中合法的是()。 A) short _a=1-.le-1; B) double b=1+5e2.5; C) long do=0xfdaL; D) float 2_and=1-e-3; 5.设int x=1, y=1; 表达式(!x||y--)的值是()。 A) 0 B) 1 C) 2 D) -1 6.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是()。 A) if (x>0) y=1; B) if(x) else if(x<0)y=-1; if(x>0)y=1; else y=0; else if(x<0)y=-1; else y=0; C) y=-1 D) y=0; if(x) if(x>=0) if(x>0)y=1; if(x>0)y=1; else if(x==0)y=0; else y=-1; else y=-1; 7.以下循环体的执行次数是()。 A) 3 B) 2 C) 1 D) 0 main() { int i,j; for(i=0,j=1; i<=j+1; i+=2, j--)printf(“%d \n”,i); } 8.以下叙述正确的是()。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。

C语言模拟试卷A

安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1

C语言期末考试题(含答案)

《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=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() 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!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,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、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言模拟试题二

模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型

c语言模拟题目第三套

第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;

case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);

c语言模拟试题

试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24

对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。

(完整版)c语言期末考试题及其答案

选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套

C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c; printf("d=%d",d); } A d=70 B d=80 C d=140 D d=700 10.已知职工记录描述如下,在Turbo C中,系统为变量w分配()字节的空间。 struct worker { int no; char name[20]; char sex; union { int day; int month; int year;}birth; } w; A 29 B 20 C 25 D 6 11.设有以下定义,值为5的枚举常量是()。 enum week{sun,mon=4,tue,wed,thu,fri,sat} w; A tue B sat C fri D thu 12.下面选项中正确的赋值语句是(设char a[5],*p=a;)()。 A p="abcd"; B a="abcd"; C *p="abcd"; D *a="abcd"; 13.设有以下程序段,则值为6的表达式是()。 struct st { int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,0 },*p; p=&a[0]; A p++->n B ++p->n C p->n++ D (*p).n++ 写出下列程序的运行结果(10分,每小题2分) 1.float average (float array[10]) { int i;

C语言程序设计模拟试题2(附答案)new

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

C语言程序设计模拟试题1(附答案)

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7)

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言上机考试经典试题(3套)

四川省普通高等学校计算机应用知识和能力 第二十八次等级考试 二级(C与C++语言) 笔试试卷 时间: 2008年4月19 日 上午9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。( 1 ) 2. 数据在计算机内存中的表示是指数据的存储结构。( 2 ) 3. Windows是多用户多任务操作系统。( 3 ) 4. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 4 ) 5. 链表可以随机访问任意一个结点,而顺序表则不能。( 5 ) 6. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 7 ) 8. 中断控制方式适用于外存同CPU之间进行大量数据交换。( 8 ) 9. 提供没有错误的程序是提高软件的可维护性的基本措施。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) 二、选择题(每小题1分,共5分) 1. 数据流图是用于描述结构化方法中(11 )工作阶段的工具。 11 (A) 可行性分析(B) 程序编码 (C) 详细设计(D) 需要分析 2. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能的出栈序列是(12 )。 12 (A) 1,4,3,2 (B) 3,1,4,2 (C) 2,3,4,1 (D) 3,4,2,1 3. 任何两个并发进程之间(13 )。 13 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 4. 以下的哪个特征不是分时操作系统的主要特征(14 )。 14 (A) 分时性(B) 独占性 (C) 交互性(D) 多路性 5. 需求分析中开发人员主要从用户那里了解(15 )。 15 (A) 软件的维护(B) 软件的结构 (C) 软件做什么(D) 软件的测试

(完整word版)C语言期末模拟试题

一、选择题:(20分,每题2分) 1.以下不正确的C语言标识符是(D)。 A. ABC B. abc C. a_bc D. ab.c 2.C程序是由B构成的。 A. 主程序与子程序 B. 主函数与若干子函数 C. 一个主函数与一个其它函数 D. 主函数与子函数 3.以下说法中正确的是:A。 A. 在C语言中,实参与其对应的形参各占独立的存储单元; B.在C语言中,实参与其对应的形参共占同一个存储单元; C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单 元; D. 在C语言中,形参是虚拟的,不占存储单元。 4.设n=3;则n++的结果是(B)。 A. 2 B. 3 C. 4 D. 5 5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。 A. 0 B. 1 C. 2 D. 3 6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(A)。 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:D。 A. x= =0 B. x= =1 C. x!=1 D. x!=0 8.若有以下说明和语句: struct worker { int no; char *name; }work, *p=&work; 则以下引用方法不正确的是(D)。 A. work.no B. (*p).no C. p->no D. work->no

9.以下对二维数组进行正确初始化的是(B)。 A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6}; C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}}; 10.二维数组a有m列,则在a[i][j]之前的元素个数为:B。 A)j*m+i B)i*m+j C)i*m+j-1 D) i*m+j+1 二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include main() { int i=16,j,x=6; j=i+++1; x*=i=j; printf(“%d,%d\n”,j,x); } 运行结果是: 2.#include #include main() { int a=1,b=4,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\n”,z);

C语言模拟题

一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b

大学C语言期末考试习题集(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C开始执行。 A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 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 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是( B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A) %x B) a+b C) a123 D) 123 选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai

相关文档
相关文档 最新文档