文档库 最新最全的文档下载
当前位置:文档库 › 江苏大学大一c语言期末复习题汇总

江苏大学大一c语言期末复习题汇总

江苏大学大一c语言期末复习题汇总
江苏大学大一c语言期末复习题汇总

江苏大学大一c语言期

末复习题汇总

WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】

选择题1.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B. C._123_ D._ok

2.请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3 C.For D.2a

define _123 -abc DO

WORD IF Case sizeof

3.不属于C语言关键字的是()。

A.int B.break C.while D.character

4.以下不能定义为用户标示符的是()。

A.scanf B.Void C._3com_ D.int

5.C语言程序的基本单位是()。

A.程序行 B.语句 C.函数 D.字符

6.以下说法中正确的是()。

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

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

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

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

7.以下选项中,合法的用户标识符是()。

A.long B._2abc C.3dmax D.

8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制

表示的字符常量’\101’是()。

A.字符A B.字符a C.字符c D.非法的常量

9.以下选项中,正确的字符常量是()。

A.”F” B.’\\’’C.’W’ D.’’

10.下列变量定义中合法的是

A.short _a=; B.double b=1+;

C.long do=0xfdaL; D.float 2_and=1-e-3;

11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关

系。

A.缩排位置相同的if

B.在其之前未配对的if

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

D.同一行上的if

12.下列运算符中优先级最高的是()。

A.< B.&& C.+ D.!=

13.判断char型变量s是否为小写字母的正确表达式是()。

A.’a’ <= s<=’z’ B.(s>=’a’) & (s<=’z’)

C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)

14.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。

A.0 B.语法错

C.1 D.“假”

15. 有一函数:?????>=<-=0

100

01x x x y ,以下程序段中不能根据x 值正确计算出y 值的是()。

A .if (x>0) y=1;

else if (x==0) y=0;

else y= -1;

B .y=0;

if (x>0) y=1;

else if (x<0) y= -1;

C .y=0;

if (x>=0)

if(x>0) y=1;

else y= -1;

D .if (x>=0)

if (x>0) y=1;

else y=0;

else y= -1;

16. 已知int a=1,b=2,c=3; 以下语句执行后a,b,c 的值是()。

if(a>b)

c=a; a=b; b=c;

A .a=1, b=2, c=3

B .a=2, b=3, c=3

C .a=2, b=3, c=1

D .a=2, b=3, c=2

17. 以下程序的运行结果是()。

#include ””

main()

{ int a=1;

if (a++>1) printf(”%d\n ”, a);

else printf(”%d\n ”, a--);

}

A .0

B .1

C .2

D .3

18. 执行以下程序段后,变量x,y,z 的值分别为()。

int a=1,b=0, x, y, z;

x=(--a==b++)?--a:++b;

y=a++;

z=b;

A.x=0,y=0,z=0 B.x= -1,y= -1,z= 1

C.x=0,y=1,z=0 D.x= -1,y= 2, z= 1

19.以下程序的输出结果是()。

#include ””

main()

{

int a=5, b=4, c=6, d;

printf(”%d\n”, d=a>b? a>c?a:c :b);

}

A.5 B.4 C.6 D.不确定

20.执行下列程序,输入为3的数出结果是()。

#include ””

main()

{

int k;

scanf(”%d”, &k);

switch(k)

{ case 1: printf(”%d\n”, k++);

case 2: printf(”%d\n”, k++);

case 3: printf(”%d\n”, k++);

case 4: printf(”%d\n”, k++);

break;

default: printf(”Full!\n”);

}

}

A.3 B.4 C.3 D.4

5 4 21.有如下程序,写出该执行结果()。

#include ””

main()

{

float x=, y;

if (x< y=;

else if (x< y=x;

else y=;

printf(”%f\n”,y);

}

A. B.C. D.

22.运行以下程序后,如从键盘上输入china#,则输出为()。

#include ””

main()

{

int v1=0,v2=0;

char ch;

while ( (ch=getchar()) !=’# ’)

switch (ch)

{ case ’a’:

case ’h’:

default: v1++;

case ’o’: v2++;

}

printf(”%d,%d\n”, v1,v2);

}

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

23.有以下程序,程序运行后的输出结果是()。

#include ””

main()

{

int a=15, b=21, m=0;

switch (a%3)

{ case 0: m++; break;

case 1: m++;

switch (b%2)

{ default: m++;

case 0: m++; break;

}

}

printf(”%d\n”,m);

}

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

24.在下列选项中,没有构成死循环的程序段是()。

i=100;

while (1)

{

i=i%100+1;

if(i>100) break;

}

B. for ( ;;);

k=1000;

do {++k;}while (k>=10000);

s=36;

while (s) ;

--s;

25.下面程序的运行结果为()。

main()

{ int n;

for(n=1;n<=10;n++)

{ if(n%3==0)continue;

printf("%d",n);

}

}

26.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是()。

A.(!E==0)

B.(E>0||E<0)

C.(E==0)

D.(E!=0)

27.下列程序的输出是()。

#include<>

main()

{ int i;char c;

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

{c=getchar();putchar(c);

}

}

程序执行时从第一列开始输入以下数据,代表换行符。

u

w

xsta

w w w

x xs xsta

28.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应

该为()。

D.非0

29.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式

的值应为()。

D.非0

30.下列程序的输出为()。

#include<>

main()

{int i=0,j=0,a=6;

if((++i>0)||(++j>0))a++;

printf("i=%d,j=%d,a=%d\n",i,j,a);

}

=0,j=0,a=6 =1,j=1,a=7 =1,j=0,a=7 =0,j=1,a=7

31.下列程序段的输出结果为()。

main()

{int x=3;

do

{ printf("%3d",x-=2);}

while(!(--x));}

0 -2 D.死循环

32.以下程序运行后,输出结果是( )。

main()

{

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

for(i=0;i

printf("%d\n",n[k]);

}

A. 不确定的值

B. 2

C. 1

D. 0

33.以下程序运行后,输出结果是( )。

main()

{

int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;

for(k=0;k<4;k++)

if(a1[i]

else a[k]=a2[j++];

for(k=0;k<4;k++) printf("%d",a[k]);

}

A. 1234

B. 1324

C. 2413

D. 4321

34.以下程序运行后输出结果是( )。

main( )

{

int n[3],i,j,k;

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

n[i]=0;

k=2;

for (i=0;i

for (j=0;j

n[j]=n[i]+1;

printf("%d\n",n[1]); }

A. 2

B. 1

C. 0

D. 3

35.若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。

A. t[2][4]

B. t[5][0]

C. t[0][0]

D. t[0,0]

36.下述对C语言字符数组的描述中错误的是( )。

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出

C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D. 不可以用关系运算符对字符数组中的字符串进行比较

37.下述对C语言字符数组的描述中正确的是 ( )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序

连续占存储空间

B. 一维数组的元素在引用时其下标大小没有限制

C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连

续的方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素

38.下列语句中,不正确的是( )。

A. static char a[2]={1,2};

B. static char a[2]={ '1', '2'};

C. static char a[2]={ '1', '2', '3'};

D. static char a[2]={ '1'};

39.设有static char str[ ]="Beijing";

则执行printf("%d\n", strlen(strcpy(str,"China")));

后的输出结果为 ( )。

A. 5

B. 7

C. 12

D. 14

40.以下说法中正确的是()。

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

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

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

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

41.一个函数返回值的类型是由()决定的。

A. return语句中表达式的类型

B. 在调用函数时临时指定

C. 定义函数时指定的函数类型

D. 调用该函数的主调函数的类型

42.在C语言中,形参的缺省存储类是()。

A. auto

B. register

C. static

D. extern

43.24.有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5));

该函数调用语句中,含有的实参个数是()。

A. 3

B. 4

C. 5

D. 有语法错

44.以下函数值的类型是()。

fun (float x)

{

float y;

y= 3*x-4;

return y;

}

A. int

B. 不确定

C. void

D. float

45.以下程序的输出结果是()。

f( int b[ ], int m, int n)

{

int i,s=0;

for(i=m;i

return s;

}

main()

{

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

x=f(a,3,7);

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

}

A. 10

B. 18

C. 8

D. 15

46.若定义:int a=511, *b=&a;,则printf("%d\n", *b);的输出结果为:

A.无确定值 B. a的地址 C. 512 D. 511

47.变量的指针,其含义是指该变量的()。

A.值 B.地址 C.名 D.一个标志

48.若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是()。

(1) int *p=&a; (2) *p=a;

A.语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值。

B. (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p。

C. (1)在对p进行说明的同时进行初始化,使p指向a;

(2)变量a的值赋给指针变量p。

D. (1)在对p进行说明的同时进行初始化,使p指向a;

(2)将变量a的值赋予*p。

49.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是

()。

#include <>

main()

{

int *p, *q, a, b;

p=&a;

printf("input a:");

scanf("%d", *p);

}

A. *p表示的是指针变量p的地址

B. *p表示的是变量a的值,而不是变量a的地址

C. *p表示的是指针变量p的值

D. *p只能用来说明p是一个指针变量

50.以下不能正确进行字符串赋初值的语句是()。

A.char str[5]= "good!";

B. char *str="good!";

C.char str[]="good!";

D. char str[5]={'g', 'o','o', 'd'};

51.若有说明语句:char s[]="it is a example.", *t="it is a example.";则以下不正确的

叙述()。

A. s表示的是第一个字符i的地址,s+1表示的是第二个字符t的地址

B. t指向另外的字符串时,字符串的长度不受限制

C. t变量中存放的地址值可以改变

D. s中只能存放16个字符

52.下列程序的输出结果是()。

#include ""

main()

{

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

p=a;

printf("%d\n", *p+9);

}

A. 0 B. 1 C. 10 D. 9

53.以下不是C语言的特点的是()。

A.语言简洁紧凑

B.能够编制出功能复杂的程序

C.C语言可以直接对硬件操作

D.C语言移植性好

54.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?

55.下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\t D.\0

56.是C语言提供的合法关键字的是()。

A.Float B.signed C.integer D.Char

57.一个C程序是由()。

A.一个主程序和若干子程序组成

E.一个或多个函数组成

B.若干过程组成

C.若干子程序组成

58.下列说法中,错误的是()。

A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号

B.每个函数都有一个函数头和一个函数体,主函数也不例外

C.主函数只能调用用户函数或系统函数,用户函数可以相互调用

D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数

59.C编译程序是()。

A.C程序的机器语言版本

B.一组机器语言指令

C.将C源程序编译成目标程序

D.由制造厂家提供的一套应用软件

60.以下选项中,合法的实型常数是()。

A. B.E-3 C.2E0 D.

61.以下选项中,合法转义字符的选项是()。

A.’\\’ B.’\018’ C.’xab’ D.’\abc’

62.以下选项中可作为C语言合法整数的是

A .10110

B B .0386

C .0Xffa

D .x2a2

63. 与数学式子1

29 x x n

对应的C 语言表达式是( )。 A .9*x^n/(2*x-1) B .9*x**n/(2*x-1)

C .9*pow(x,n)*(1/(2*x-1))

D .9*pow(n,x)/(2*x-1)

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

A .1

B .2

C .3

D .4

65. 逻辑运算符两侧运算对象的数据类型()。

A .只能是0或1

B .只能是0或非0正数

C .只能是整型或字符型数据

D .可以是任何类型的数据

66. 能正确表示“当x 的取值在[-58,-40]和[40,58]范围内为真,否则为假”的表达式是

()。

A .(x>= -58) && (x<= -40) && (x>=40) && (x<=58)

B .(x>= -58) || (x<= -40) || (x>=40) || (x<=58)

C .(x>= -58) && (x<= -40) || (x>=40) && (x<=58)

D .(x>= -58) | |(x<= -40) && (x>=40) || (x<=58)

67. 若希望当x 的值为奇数时,表达式的值为“真”,x 的值为偶数时,表达式的值为

“假”。则以下不能满足要求的表达式是()。

A .x%2==1

B .!(x%2==0)

C .!(x%2)

D .x%2

68. 指出下列程序段所表示的逻辑关系是()。

if(a

{if(c==d)

x=10;

}

else

x=-10;

A .???≠≥=<-=d c b a d c b a x 且且1010

B .???≥=<-=b

a d c

b a x 且1010 C .???≠<=<-=d

c b a d

c b a x 且且1010 D .???≠=<-=

d c d

c b a x 且1010

69. 请阅读以下程序:该程序()。

#include ”stdio .h ”

main()

{ int x=-10, y=5, z=0;

if (x=y+z) printf(”***\n ” );

else printf(”$$$\n ”);

}

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

B .可以通过编译但不能通过连接

C .输出***

D .输出$$$

70. 当a=1,b=2,c=4,d=3时,执行完下面一段程序后x 的值是()。

if (a

if (c

else

if (a

if (b

else x=3;

else x=4;

else x=5;

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

71.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是()。

a=1;b=2;c=3;d=4;

w=(a

w=(w

w=(w

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

72.若a、b、c1、c2、x、y均为整型变量,正确的switch 语句是()。

A.switch (a+b); B.switch a

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

case 0: y=a-b; case c2: x=a*d; break;

break; default: x=a+b;

} }

C.switch (a*a+b*b) D.switch(a-b)

{ case 3: { default: y=a*b; break;

case 1: y=a+b; break; case 3: x=a+b; break;

case 3: y=b-a; break; case 10: case 11: y=a-b; break;

} }

73.以下程序的运行结果是()。

#include ””

main()

{

int a=2,b= -1,c=2;

if (a

if (b<0)

c=0;

else c++;

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

}

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

74.有以下程序,若输入为字符s,则程序运行结果为()。

#include ””

main()

{

char ch;

ch=getchar();

switch (ch)

{ case ’a’: printf(”a=%c\n”,ch);

default: printf(”end!\n”);

case ’b’: printf(”b=%c\n”,ch);

case ’c’: printf(”c=%c\n”,ch);

}

}

A.end! B.end! C.有语法错误 D.a=s

b=s end!

c=s

75.当执行以下程序段时。

x=-1;

do

{x=x*x;}

while (!x);

A.循环体将执行一次

B.循环体将执行两次

C.循环体将执行无数多次

D.系统将提示有语法错误

76.列程序运行的情况是()。

main()

{ int i=1,sum=0;

while(i<10)sum=sum+1;i++;

printf("i=%d,sum=%d",i,sum);

}

=10,sum=9 =9,sum=9 =2,sum=1 D.运行出现错误

77.标有/**/的语句的执行次数是()。

int y,i;

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

相关文档