当前位置:文档之家› C语言2013-2014学年第一学期期末试卷解析

C语言2013-2014学年第一学期期末试卷解析

C语言2013-2014学年第一学期期末试卷解析
C语言2013-2014学年第一学期期末试卷解析

江苏大学试题

(2013-2014学年第1学期)

注意事项:

1. 闭卷考试。考试时间为120分钟。

2.选择题请用2B铅笔涂在答题卡上。其余用签字笔或圆珠笔填写在答题纸上。

3.请将答题卡(提前15分钟收取)、答题纸、试卷分别都写上班级、学号、姓名、任课教师。

一、选择题(50分,每小题1分)

1.标准C语言程序的文件名的后缀是。

A. .cpp

B. .c

C. .exe

D. .obj

2.以下叙述正确的是_______。

A.C语言程序是由过程和函数组成的

B.C语言函数可以嵌套调用,例如:fun(fun(x))(不可嵌套定义)

C.C语言函数不可以单独编译(可以单独编译)

D.C语言中除了main函数,其他函数不可作为单独文件形式存在

3.下列可用于C语言用户标识符的一组是_______。

A.void, define, WORD B.a3_3,_123,Car

C.For, -abc, IF Case D.2a, DO, sizeof

(合法字符数字,下划线,字母,以下划线或字母开头,但不能是C语言关键字)

4.以下选项中不能用作C程序合法常量的是_________ 。

A.1,234 B.'\123'C.123 D."\x7G"

(合法常量: 整型常量,符号常量,实型常量,字符常量,转义字符,字符串常量)5.以下定义语句中正确的是_______。

A.int a=b=0; (初始化不允许连等)B.long a=65; b;

C.float a=1 ; D.double a=0.0;b=1.1;

6.以下叙述中正确的是______。

A. 在C程序中无论是整数还是实数,只要在允许范围内都能准确无误的表示

B. 在C程序中只要是整数在允许范围内都能准确无误的表示

C. 在C程序中只要是实数在允许范围内都能准确无误的表示

D. 在C程序中无论是整数还是实数,都无法准确无误的表示

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

A. 3

B. 0

C. 9

D. -12

(a+=a-=a*a等价于a=a+(a=a-(a*a)) )

8.int a=256; 执行语句“printf("%x" ,a); ”的结果是________。

A.100

B.256

C. 0FFE

D.00FF

(%x,十六进制输出,将256转换为16进制)

9.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是。

A.if((a>b)&&(b>c)) k=1; else k=0;

B.if((a>b)||b>c)) k=1 else k=0;

C.if(a<=b) k=0; else if(b<=c) k=1;

D.if(a>b) k=1; else if(b>c) k=1; else k=0;

10.有以下程序

#include

main()

{int s=0,a=1,n;

scanf("%d",&n);

do{s+=1;a=a-2;}while(a!=n);

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

若要使程序的输出值为2,则应该从键盘给n输入的值是。

A.-1

B.-3

C.-5

D.0

(即当循环条件中a==n时循环退出,)

11.以下程序段的运行结果是______。

char c[5]={ 'a', 'b', '\0', 'c', '\0'};

printf("%s", c);

A.ab B.'a''b' C.ab\0c\0 D.ab\0c

12.当执行下列语句序列时:

static int x;

do{x+=x*x;}

while(x);

问do-while循环一共执行了次。

A.0

B.1

C.无穷多

D.暂时不能确定,要依赖x来判断。(静态变量和全局变量若未赋值时,系统自动赋0值)

13.设有以下函数定义,则返回的函数值是_________。【本题跳过】

main()

{int x,*y; y=fun(&x);….}

int *fun(int *a)

{ int *t; *a=99; t=a; return t;}

A.无确定的值

B. 形参a的地址

C.主程序中变量x的地址

D. 函数中变量t的地址

14.设有以下说明,则值为210的表达式是______。

struct s

{ int a;int *b;};

int x0[]={110,120},x1[]={210,220};

struct s x[]={{100},{200}},*p=x;

x[0].b=x0;x[1].b=x1;

A. *p->b

B. (++p)->a

C. *(p++)->b

D.*(++p)->b

15.若有定义int a,b;若要通过scanf(“a=%d,b=%d”,&a,&b);语句分别给a 和b 输入1和2,则正确的数据输入内容是_______。

A.1,2 B.1 2 C.a=1,b=2 D.a=%d,b=%d

16.若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是_____。A.a=a++,i++; B.i=(a+k)<=(i+k);C.i%=a;D.i=!a;

(注意算术运算符%的特点:两操作数都是整型)

17.以下程序运行后的输出结果是_____。

#include

main()

{ int a;

a=(int)((double)(3/2)+0.5+(int)1.99*2);

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

}

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

18.有以下程序

#include

main()

{ FILE *f;

f=fopen("filea.txt","w");

fprintf(f,"abc");

fclose(f);}

若文本文件filea.txt 中原有内容为hello,则运行以上程序后文件filea.txt中的内容为_____。A.helloabc B.abclo C.abc D.abchello

19.有以下程序段

char name[20];

int num;

scanf("name=%s num=%d",name,&num);

当执行上述程序段后,并从键盘输入:name=Lili num=1001<回车>后,name 的值为_____。

A.Lili B.name=Lili C.Lili num= D.name=Lili num=1001.

20.有以下程序

#include main()

{ int x=011; /* 011为八进制数*/

printf("%d\n",++x); /*将011转换为十进制数9,然后加1输出*/ }

程序运行后的输出结果是 _____。

A .12

B .11

C .10

D .9

21.当整型变量c 的值不为2、4、6时,值恒为“真”的表达式是 _____。 A . (c==2)||(c==4)||(c==6) B . (c>=2&& c<=6)||(c!=3)||(c!=5) C . (c>=2&&c<=6)&&!(c%2) D . (c>=2&& c<=6)&&(c%2!=1)

22. 若有定义int t=0; 循环语句while (t=1) {...} ,则以下叙述正确的是_______。 A .循环控制表达式的值为0

B .循环控制表达式的值为1

C .循环控制表达式不合法

D .以上说法都不对

23. 设变量a 、b 、c 、d 和y 都已正确定义并赋值。若有以下if 语句

if (a

A.??

?≥=<=b a d c b a y 10且 B. ??

?≠≥=<=d b a d c b a y c 1

且且

C.??

?≠<=<=d b a d

c b a y c 1

0且且 D. ??

?≠=<=d

d c b a y c 1

24. 若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是_____。

A.switch(a+9) B. switch a+9

{ case c1:y=a-b; { case 10: x=a+b;

case c2:y=a+b; default: y=a-b;

} }

(case后必须是整型常量或字符常量)(switch后的表达式不略省括号)

C. switch (a+b)

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

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

case 0:case 4: y=a-b; case 3: y=a+b;break;

} case 2: y=a-b;break;

}

25. 有以下程序

#include

main()

{ int i,s=1;

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

if(!(i%5)&&!(i%3)) s+=i;

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

}

程序的输出结果是_______。

A.409

B.277

C.1

D.91

(该程序的功能是求50以内15和倍数之和+1)

26. 有以下程序

#include

main()

{int i,j,x=0;

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

{ x++;

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

{ if(j%2) continue;

x++;}

x++;}

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

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

A.x=4

B.x=8

C.x=6

D.x=12

27. #include

main()

{ int c=0,k;

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

switch (k)

{ default: c+=k;

case 2: c++;break;

case 4: c+=2;break;}

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

程序运行后的输出结果是_______。

A.3

B.5

C.7

D.9 (break:可以用在循环语句和switch语句,其作用中断所在模块。continue:只能用以循环语句。结束本次循环,继续下次循环)

28. 设x和y均为int 型变量,则执行下面的循环后,y的值为_______。

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

{ if(x>=10) break;

if(x%2==1) { x+=5;continue;}

x-=3;}

A.2

B.4

C.6

D.8

29. 下列定义数组的语句中,正确的是。

A.int N=10; B.#define N 10

int x[N]; int x[N];

C.int x[0..10]; D.int x[];

30. 以下对二维数组a能进行正确初始化的语句是。

A.int a[2][]={1};

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

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

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

31. 有以下程序

#include

main()

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

int i,s=0;

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

s+=aa[i][2]; /*求二维数组第2列所有元素之和*/

printf("%d",s); }

程序运行后的输出结果是。

A.26

B.19

C.10

D.20

32. 有以下程序

#include

main()

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

int b[3]={0},i;

for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i];

for(i=0;i<3;i++) printf("%d",b[i]);

printf("\n");}

程序运行后的输出结果是。

A.101418

B. 81318

C. 012310

D.101416

33. 设有定义:

struct {char mark[12];int num1;double num2;} t1,t2;,若变量均已正确赋初值,则以下语句中错误的是。

A.t1=t2; B. t2.num1=t1.num1; C.t2.mark=t1.mark; D.t2.num2=t1.num2; (结构体变量不可以比较大小,字符串不能用=、>、<、==、!=等进行赋值或比较)

34. 下面结构体的定义语句中,错误的是______。

A.struct ord {int x;int y;int z;}; struct ord a;

B.struct ord {int x;int y;int z;} struct ord a;

C.struct ord {int x;int y;int z;} a;

D.struct {int x;int y;int z;} a;

35. 有以下程序

#include

struct S

{ int a,b;}data[2]={10,100,20,200};

main()

{ struct S p=data[1];

printf("%d\n",++(p.a));}

程序运行后的输出结果是______。

A.10

B.11

C.20

D.21

36. 有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是______。

A. gets(&s[0]); B.scanf("%s",s+1);

C.gets(s); D.scanf("%s",s[1]);

(%s, 对应的一定是地址,而s[1]是数组元素)

37. 有以下程序

#include

main()

{char a[5][10]={"china","beijing","you","tiananmen","welcome"};

int i,j;char t[10];

for(i=0;i<4;i++) /*擂台法排序*/

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

if( strcmp(a[i],a[j])>0)

{ strcpy(t,a[i]);

strcpy(a[i],a[j]);

strcpy(a[j],t);}

puts(a[3]);

}

程序运行后的输出结果是______。

A. beijing

B. china

C. welcome

D. Tiananme

(该程序的功能是实现由小到大的字符串排序)

38. 若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是_____。

A.pk=k; B.pk[0]=&k[1][2]; C.pk=k[0]; D.pk[1]=k;

(错误AC,pk是指针数组的数组名,不能给数组名赋值,错误D,不能把行指针赋给列指针)

39. 有以下程序

#include

main()

{ int a,b,k,m,*p1,*p2;

k=1,m=8;

p1=&k,p2=&m;

a=++*p1+*p2;

b=k;

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

程序运行后的输出结果是_____。

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

40. 以下选项中有语法错误的是_____。

A. char *str[ ]={"guest"};

B. char str[10 ]={"guest"};

C. char *str[3]; str[1]="guest";

D. char str[3][10];str[1]={"guest"};

41. 设有以下程序段

struct MP3

{char name[20];

char color;

float price;}std,*ptr;

ptr=&std;

若要引用结构体变量std中的color成员,写法错误的是_____。

A.std.color B.ptr-> color C.std-> color D.(*ptr) .color

42. C语言程序中,若函数无返回值,则应该对函数说明的类型是______。

A. int

B. double

C.char

D.void

43. 若有函数

void fun(double a[], int *n)

{………}

以下叙述中正确的是______。

A.调用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传送

B.形参a和n都是指针变量

C.形参a是一个数组名,n是指针变量

D.调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组

44. 有以下函数

#include

void fun(char c)

{ if(c>'x') fun(c-1);

printf ("%c",c);}

main()

{ fun('z');}

程序运行输出结果是______。

A.xyz B.wxyz C.zyxw D.zyx

45. 有以下函数

int aaa(char *s)

{ char *t=s;

while(*t++);

t--;

return(t-s);}

以下关于aaa函数的功能叙述正确的是______。

A.求字符串s的长度B.比较两个串的大小

C.将串s复制到串t D.求字符串s所占字节数

46. 设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是__。A.auto B.register C.static D.auto或register

47. 有以下程序

#include

int fun()

{ static int x=1; /*静态变量只赋一次初值,下次调用时沿用更改后的值*/ x=x*2; return x;}

main()

{ int i,s=1;

for(i=1;i<=2;i++) s=fun();

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

程序运行后的输出结果是______。

A.0 B.1 C.4 D.8

48. 有以下程序

#include

int a=5; /* 全局变量*/

void fun(int b)

{ int a=10; /* a是局部变量,仅在fun函数的效*/

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

main()

{ int c=20;

fun(c);a+=c;printf("%d\n",a);} /* a用全局变量的值*/

程序运行后的输出结果是______。

A.3025 B.3050 C.2525 D.2545

49. 若有说明int(*p)[3]; 则以下_________是正确的叙述。

A. p是一个指针数组

B. (*p)[3]与*p[3]等价

C. p是一个指针,它可以指向一个一维数组中任一元素

D. p是一个指针,它只能指向一个包含3个int类型元素的一维数组

50. 下面能正确进行字符串赋值操作的是______。

A.char s[5]={“ABCDE”};

B.char s[5]={‘A’,’B’,’C’,’D’,’E’};

C.char *s ; s=”ABCDE”;

D.char *s; scanf(“%s”,s) ;

(字符串赋值,一是赋值的正确格式,二是考虑存储字符串的数组的长度)

二、程序阅读题(20分,每空2分)

(注意:请将答案按编号填入答题纸的指定位置)

1.当输入以下数据时,100 200 300 400 500<回车>,下面语句的执行结果为(1) 。【本题跳过】

#include

main()

{int a,b,c;

scanf("%d%*d%d%d",&a,&b,&c);

printf("%d %d %d",a,b,c);}

100 300 400

2.以下程序段的输出结果是_(2)____。

#include

main()

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

if(a

if(a

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

5 0 3

3.下列程序输出的最后一行是(3) 。-2

#include

main()

{int i=-5;

while(i++)

{switch(i+5)

{case 1: switch(-i-3) {case 1:printf("%d\n",i);

case 2:printf("%d\n",i);}

case 2:printf("%d\n",i);break;

case 3:printf("%d\n",i);}}}

4.执行以下程序后,sq[0][2]= __(4)_2___,sq[1][1]= ___(5)__5___,sq[2][0]= ___(6)__8___。main ()

{static int sq[3][3]={0,0,0,0,0,0,0,0,0}; int j=1,k=0,n;

sq[j][k]=1;

for(n=2; n <=9; n ++)

{j--; k--;

if(j<0&&k<0){j++; k+=2;}

else if(j>=0&&k<0)k=2;

else if(j<0&&k>=0)j=2;

else if(j>=0&&k<=2&&sq[j][k]!=0) {j++; k+=2;}

sq[j][k]=n; }

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

{for(k=0;k<3;k++)

printf("%5d",sq[j][k]);

printf("\n");} }

5. 以下程序输出的第三行结果是__(7)__11__。

#include

struct s

{int n,*m;}*p,*q;

int d[5]={10,20,30,40,50};

struct s arr[5]={{100,&d[3]},{200,&d[4]},{300,&d[0]}, {400,&d[1]},{500,&d[2]}}; main()

{q=p=arr;

printf("%d\n",++p->n);p++;

printf("%d\n",p++->n);

printf("%d\n",++(*p->m));

q+=3;

printf("%d\n",*q->m);}

6. 有以下程序

#include

void ss(char *s,char t)

{ while(*s)

{ if(*s==t) *s=t-'a'+'A';

s++; }}

main()

{ char str1[100]="abcddfefdbd",c='d';

ss(str1,c);

printf("%s\n",str1);}

程序运行后的输出结果是_(8)_abcDDfefDbD ____。

7. 下面程序的运行结果为:(9) 。

#include

int func2();

int i=2; /*i 全局变量*/

void func1(int i)

{ i=func2(); printf("%d",i); }

int func2() /*func2 函数中变量i为全局变量*/

{ if(i<3)

{ i+=2; func1(i); }

return i;}

void main()

{ int i=0;

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

8. 以下程序的输出结果是___(10)_ hane_____。【本题跳过】char *fun(char *s)

{ int i ,j;

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')s[j++]=s[i];

s[j]='\0';return s; }

main()

{printf("%s",fun("chance"));}

三、完善程序题(20分,每空2分)

(注意:请将答案按编号填入答题纸的指定位置)

1.输入百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。(注:假设输入的成绩在0到100之间)。

#include

main()

{float score; char grade;

scanf("%f",&score);

switch( (1) ) (int)score/10 /(int)(score/10)

{case 10:

case 9:grade='A';break;

case 8:grade='B';break;

case 7:grade='C';break;

case 6:grade='D';break;

(2) ;break; }

printf("成绩是%f,相应的等级是%c\n",score,grade);}

2.以下程序采用递推法计算某一级数的近似值,n取某一值使得|x(2n+1)/n!|<0.000001时则停止计算。级数如下:

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

同济大学C语言期末考试卷

同济大学C语言期末考试卷 2005-2006学年第二学期《C程序设计期末试卷》(闭卷) 一、单项选择题(20分) 1. 在定义函数时,能用以下(1) 标识符作函数名。 A.struct B._abc C. 8abc D. abc@https://www.doczj.com/doc/c45956350.html, 2在一个函数被调用执行过程中,当执行到函数体中(2) 语句后立即无条件返回主调函数。 A.goto B.break C.continue D.return 3.以下关于main函数定义的叙述中,错误的是(3) 。 A. main函数是自定义函数,因此函数体中的声明和语句都是可选的 B. main函数定义时可以有形式参数也可以没有形式参数 C. main函数定义必须出现在一个源程序的起始位置 D. 在一个源程序中只能有一个main函数定义 4.以下函数定义中正确的是(4) 。 A. double fun(intx,y){ return x*y;} B. double fun(intx,int x){ return x*x; } C. double fun(register intx,int y){ return x*x;} D. double fun(extern intx,int y){ return x*y;} 5.若函数定义为void fun(intx,inty,int *p) { *p= x>y ? x : y; },且main函数中有声明“int a=1,b=2,c[2]={0};”,则以下语句中正确的是(5) 。 A.printf(“%d”,fun(a,b,c)); B.fun(a,b,c+1); C.fun(a,b,c[2]); D.fun(1,2); 6. 若函数定义为double fun(double x,double y){ return x/y;},则以下fun引用声明(函数原型)中错误的是(6) 。 A. double fun(double x,double y); B. double fun(double a,double b); C. double fun(double ,double ); D. float fun(double x,double y); 7.以下程序段中,有语法错误的是。 A. double f; double f (double x) { return f=x*x; } C. double f (double x) { double f; return f=x*x; } B. double f (double f) { return f*f;} D. double f (double x) { if(x>0){ double f ; return f=x;} else{ double f ; return f= -x;} } 8.以下一维数组声明中,正确的是(8) 。 A. int a[ ]; B.int b[10],a[b]; C. int a[4]={1,2,3,4,5}; D. int a[sizeof('a')]={'a'};

汇编语言程序设计期末考试试卷及参考答案

【汇编语言程序设计】期末考试-试卷及参考答案

执行上述两条指令后,正确的结果是( B )。 A.(AX)=1001H; B.(AX)=0FFFH; C.(AX)=1000H; D.(AX)=0111H。 6.串指令中的目的操作数地址一定是由____A_ _提供。()A.ES:[DI] ; B.SS:[BP]; C.DS:[SI] ; D.CS:[IP]。 7.将DX的内容除以2,正确的指令是( C )。 A.DIV 2 ; B.DIV DX,2 ; C.SAR DX,1; D.SHL DX,1。 8. 用户为了解决自己的问题,用汇编语言所编写的程序,称为( B )。 A.目标程序; B.汇编语言源程序; C.可执行程序; D.汇编程序。 9.用一条指令仅实现将AX←BX+SI的方法是( D )。 A.XCHG AX,[BX][SI] ; B.MOV AX,[BX+SI]; C.LEA AX,BX[SI] ; D.LEA AX,[BX][SI]。 10.设SP初值为2000H,执行指令“PUSH AX”后,SP的值是( C )。 A.1FFFH; B.1998H; C.1FFEH; D.2002H。 2. C 二、指出下列指令的出错原因,并改正。(每小题2分,共12分) 1.MOV BX,DL;操作数类型不匹配,改正为:MOV BL,DL 或MOV BX,DX 2.MOV CS,AX;代码段寄存器CS不能作目的操作数,改正为MOV DS,AX 3.ADD AX,DS;段寄存器DS的内容不能作为加法指令的操作数,改正为 MOV BX,DS ADD AX,BX 4.TEST BX,[CX];不能使用CX实现寄存器间接寻址,改正为 MOV SI,CX TEST BX,[SI] 5.SUB [BX],[BP+SI];两个操作数不能同为存储器操作数,且两个操作数的数据类型不确定,改正为:MOV AX,[BX] SUB AX,[BP+SI] 或:MOV AL,[BX] SUB AL,[BP+SI] 6.SHL DX ;没有给出移位次数,改正为SHL DX,1或 SHL DX,CL 三、程序填空题(注意:每空只能填一条指令,并注释说明所填指令的作用!每空3分,共18分) 1.在表TABLE处存放着N个无符号字节数,求表中前10个字节数的总和并

大一C语言期末考试试题

6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;

printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);

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语言期末考试题

大一C语言期末考试题 悬赏分:40 |解决时间:2010-6-29 14:28 |提问者:345387547 1. 数组int a[3][5]; 共定义了____15_________个元素。 2. 有float f= 3.1415927; 则printf(“%5.4f”, f );输出的结果是 _______________。 3. 下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。 main( ) { int i; for(i=1; ___i<100____________; i++) if (___i/3_=__=0__i_______) printf("%d", i); } 4. 设有“int x=2, y”说明,则逗号表达式“y=x+5,x+y”的值是_________7 ______ 5. 以下是使用指针,进行字符串复制的程序,请填空。 main() { char a[]= “Tsinghua University”, b[30], *p1,*p2; p1=a; p2=b; for(; *p1!= _______________; p1++, p2++) _______________=_______________; *p2= ______________; printf(“string a is:%s\n”,a); printf(“string b is:%s\n”,b); } 6. 下面程序用冒泡法对数组a进行降序排序,请填空。 main() { int a[5]={4,7,2,5,1}; int i,j,m; for(i=0;i<4;i++) for(j=0;j<_______________;j++) if( _______________< _______________ ) { m=a[ j]; a[ j]=a[ j+1]; a[ j+1]= m; } for(i=0;i<5;i++) printf("%d ",a[i]); } 7. 函数fun的功能是:使一个字符串按逆序存放,请填空。 void fun (char str[]) { char m; int i,j; for(i=0,j=strlen(str);i<_______________;i++,j--)

大学计算机C语言期末试卷02

一、选择题,(1-50)每题1分,下列各题A)、B)、C)、D)四个选项中,只有一个选项是 正确的,请将正确选项涂写在试卷最后答题纸相应位置上,答在试卷上不得分。 (1) 用8位表示,-2的补码是D A) 10000001 B) 11111111 C) 00000001 D) 11111110 (2) 在VC中,实型float占用的字节数是c A) 1 B) 2 C) 4 D) 8 (3) unsigned short的取值范围是d A) 0~ 255 B) -128 ~ 127 C) -32768 ~ +32767 D) 0 ~ 65535 (4) 十六进制数FE的十进制结果为A A) 254 B) 512 C) 1024 D) 64 (5) 源程序ex1.c编译后生成的文件名为 C A) ex1.doc B) ex1.obj C) ex1.exe D) ex1.cpp (6) C语言源程序的后缀为B A) .cpp B) .c C) .exe D) .doc (7) 工程文件名的后缀为A A) .prj B) .c C) .cpp D) .bin (8) 字符’B’的ASCII值是A A) 66 B) 0x3A C) 0x42 D) 49 (9) 将十进制数132转为二进制数的结果是D A) 11001100 B) 110011011 C) 10101010 D) 10000100 (10) 终止死循环用组合键B A) Alt+F10 B) Ctrl+C或Ctrl+Break C) Ctrl+F1 D) Ctrl+Shit或Ctrl+ESC (11) 在VC中,编译的快捷键是B A) F7 B) Ctrl+F7 C) Ctrl+F5 D) F5 (12) 以下选项中可作为C语言合法整数的是D A) 10110B B) 0386 C) 0Xffa D) x2a2 (13) 以下不能定义为用户标识符的是D A) scanf B) Void C) _3com_ D) int (14) 以下程序 swap(int x, int y) {int temp; temp=x; x=y; y=temp; } main() {int a=10,b=20; swap(a,b); printf("a=%d,b=%d\n",a,b); } 的运行结果是B A)a=20,b=10 B)a=10,b=20 C)10,20 D)20,10 (15) 以下程序: main() {int a=0x55, b=0xaa; printf("%d\n", a^b); } 的运行结果是:C A) 0 B) 1 C) 255 D) 0xaa (16) 有以下程序 main() {int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

C程序设计语言期末考试题A有答案)

期末试题——C#程序设计语言(A卷) 说明:本试卷共四大题,试卷满分100分,考试时间120分钟。 一.判断题(每题1分,共10分,正确的打√,错误的打×) ( ) 1.“+、-、*、/、%、++、--均属于二元运算符。 ( ) 2.字符串类型属性引用类型。 ( ) 3.Visual Studio控件的属性窗口中,按钮“A->Z”点击后,属性列表会先按照功能分类排列属性后在每个单元中以名称排序。 ( ) 4.派生类可以继承基类的成员,以及方法的实现;派生的接口继承了父接口的成员方法,并且也继承父接口方法的实现。 ( ) 5.当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。 ( ) 6.隐式类型转换就是不需要声明目标类型就可以进行的转换? ( ) 7.如果基类没有默认的构造函数,那么其派生类构造函数必须通过base关键字来调用基类的构造函数。 ( ) 8.在C#中在派生类中重新定义基类类的虚函数必须在前面加override。 ( ) 9.C#中方法的参数中输出型参数(out)的实参在传递给形参前,不需要明确赋值,但需在方法返回前对该参数明确赋值。 ( ) 10.在类中可以重载构造函数,C#会根据参数匹配原则来选择执行合适的构造函数。 二.单项选择题(每题2分,共40分) 一、(说明:每题有且仅有一个正确答案,请将正确答案填入下表) 1.C#程序设计语言属于什么类型的编程语言:a A.高级语言 B.自然语言 C.机器语言 D.汇编语言 2.如有int a=11;则表达式(a++*1/3)的值是:b A.0 B.3 C.4 D.12 3.类的字段和方法的默认访问修饰符是:b A. public B. private C. protected D. internal 4.对于在代码中经常要用到的且不会改变的值,可以将其声明为常量。如圆周率PI始终为。现 在要声明一个名为PI的圆周率常量,下面哪段代码是正确的?b float PI;PI = ; float PI = ; const PI;PI = ; const PI = ; 5.请问经过表达式a=3+3>5?0:1的运算,变量a的最终值是什么?。c

c语言期末测试题(附答案)

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

昆明理工大学C语言期末考题库

昆明理工大学C语言期末考题库一个数组中的所有元素可以具有不相同的数据类型。选择一项: 对 错 C语言中,do-while语句构成的循环只能用break语句退出。选择一项: 对 错 数组名作为函数的参数时,实参数组和形参数组共用相同的内存单元。 选择一项: 对 错 已知字符数组str1的初值为"China",则语句str2=str1;执行后字符数组str2也存放字 符串"China"。 选择一项: 对 错 论使用何种参数传递方式,形参变量值的改变都不影响实参变量的值。 选择一项:

对 错 以下有关宏替换的叙述不正确的是_______。选择一项: a. 宏替换不占用运行时间 b. 宏替换只是字符替换 c. 宏名无类型 d. 宏名必须用大写字母表示 结构体可以定义在单独的头文件中,使用时需要在对应C文件中包含该头文件。 选择一项: 对 错 可以用swicth结构实现的程序都可以使用if语句来实现。选择一项: 对 错 下面对typedef的叙述中不正确的是_______。 选择一项: a. typedef只是将已存在的类型用一个新的标识符来代表

b. 用typedef可以增加新类型 c. 用typedef可以定义各种类型名,但不能用来定义变量 d. 使用typedef有利于程序的通用和移植 枚举类型时一种基本的数据类型。 选择一项: 对 错 switch语句的结束发生在break;语句的执行或者switch语句的“}”。选择一项: 对 错 f(int a) { int b=0;static int c=3; b++; c++; return(a+b+c); } 选择一项: a. 7 7 7 b. 7 8 9 c. 7 10 13 d. 7 9 11

汇编语言期末试卷复习附答案

选择题 1. 已知X=78,Y= -83则[X+Y]补=() A.0F5H B.0A1H C.0FBH D.65H 2. MOV AX, ES:COUNT[DI] 源操作数的寻址方式是() A.基址寻址 B.立即寻址 C.变址寻址 D.基址变址寻址 3. 指令MOV BX, MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为() A.17500H B.16500H C.14500H D.13500H 4. 下列四组寄存器中,在段内寻址时可以提供偏移地址的寄存器组是() A.AX,BX,CX,DX B.BP,SP,IP,CS C.BX,BP,SI,DI D.BH,BL,CH,CL 5. 当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是() A. 表示结果中含1的个数为偶数 B. 表示结果中含1的个数为奇数 C. 表示该数为偶数 D. 表示结果中低八位含1的个数为偶数 6. 下列传送指令中,有语法错误的指令是()。 A.MOV CS,AX B.MOV DS,AX C.MOV ES,AX D.MOV SS,AX 7. MOV SP,3210H PUSH AX执行上述指令序理后,SP寄存器的值是()。 A.3211H B. 320EH C.320FH D. 3212H 8. 设(DH)=20H,执行NEG DH指令后,正确的结果是() A.(DH)=20H CF=1 B.(DH)=20H CF=0 C.(DH)=0E0H CF=0 D.(DH)=0E0H CF=1 9. 执行下面指令序列后,结果是() MOV AL,82H CBW A.AX=0FF82H B.AX=8082H C.AX=0082H D.AX=0F82H

大一c语言期末试题及参考答案word版本

2004级信息学院《C语言设计》考试试题 一、判断下列语句或程序的对错。 10分√ 1 int x=y=z=’0’; (×) y,z没有定义 2 #include ; (×)不能有分号,#开头的结尾均不能有分号; 3 printf(“%s\n”,”c language”); (√) 4 float a[100]; int *p=a; (×)数据类型不匹配 5 char str[20]; 6 int data[4]={0,1,2,3,4}; (×)五个元素,但是只有四个单元 7 float x=1.45e+310L; (×)数值越界 8 int xyz-1=2; (×) 9 int x=‘\xae’ ; (√) 10 int *p,a[2][3] ; p=a ; (×)数据类型不匹配 二计算下列表达式的值 10分 设 unsigned int a=10,b=17,c=5,d=3; float f ; (1)f=b/c ( 3.0 ) (2)!(a+b)+c-1&&b+c/2 ( 1 ) (3)(a^b)+(c>>1+d) ( 0x1b ) (4)a+=b%=a=b ( 17 ) (5)a=2,b=a*++b ( 2 ) 三程序改错 10分 (1)求两个浮点数的平方和及平方差 #include float calculate (float x,float y,float *sub);添加函数原型声明 main () { float a,b; float add_reasult, sub_result; scanf (“%f,%f”,a,b); add_result=calculate(a,b,&sub_result); printf( “a*a+b*b=%d,a*a-b*b=%d\n”,add_result,sub_result); } float calculate (float x,float y,float *sub) 添加函数类型 { float *temp; 应该直接定义为变量float temp; sub=a*a-b*b ; *sub=a*a-b*b;

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

汇编语言基础试题

第一章基本知识 一、单项选择题(共40分,每题2分) 1.若十进制数为13 2.75,则其十六进制数为(B) A.21.3 B.84.C C.4.6 D.6 2.若[X补]=11111,则其十进制真值为(C) A.-31 B.-15 C.-1 D.31 3.某定点整数64位,含1位符号位,补码表示,则其绝对值最大负数为(A) A.-263 B.-264 C.-(263-1) D.-(263-1) 4.原码乘法是(D) A.用原码表示操作数,然后直接相乘 B.被乘数用原码表示,乘数取绝对值,然后相乘 C.乘数用原码表示,被乘数取绝对值,然后相乘 D.先取操作数绝对值相乘,符号位单独处理 5.在微机系统中分析并控制指令执行的部件是(C) A.寄存器 B.数据寄存器 C.CPU D.EU 6.已知X=76,则[X]补=(B) A.76H B.4CH C.0B4H D.0CCH 7.已知[X]补=80H, 则X=(D) A.80H B.0 C.0FFH D.-80H 8.已知[X]补=98H, 则[X]补/2=(A) A.0CCH B.4CH C.49H D.31H 9.已知X=78,Y=-83则[X+Y]补=(C) A.0F5H B.0A1H C.0FBH D.65H 10.在计算机的CPU中执行算术逻辑运算的部件是(A) A.ALU B.PC C.AL D.AR 11.将125转换成二进制数的结果(A) A.7DH B.7CH C.7EH D.7BH 12.将93H看成一个组合BCD码,其结果是(B) A.10010101 B.10010011 C.10000011 D.10000001 13.能被计算机直接识别的语言是(C) A.C语言 B.汇编语言 C.机器语言 D.面向对象语言

南京邮电大学C语言期末试卷及答案

模拟试卷A 一、单选题 1、C语言中运算对象一定不能是double类型的运算符是___ 。 A、%= B、/ C、= D、<= 2、能正确表达数学逻辑关系"0b) c=0; else c=1; 等价于___。 A、c=(a>b)?1:0; B、c=a>b; C、c=a<=b; D、以上均不是 7、有如下定义语句:int a, b=5, *p=&a; 则能完成a=b赋值功能的语句是___。 A、a=*p; B、*p=*&b; C、a=&b; D、*p =&*p; 8、设int *ptr, x, array[5]={5,4,3,2,1}; ptr=array; 能使x的值为3的语句是___。 A、x=array[3]; B、x=*(array+3); C、x=*(ptr+2); D、array+=2; x=*array; 9、有函数原型为void f(int,int *);主函数中有变量定义:int a,*p=&a,b[10]; 则下列几种调用错误的是___。

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

大一c语言期末考试题

大一c语言期末考试题 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;

相关主题
文本预览
相关文档 最新文档