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

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

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

江 苏 大 学 试 题

(2013-2014学年第 1 学期)

课程名称 程序设计(C 语言) 开课学院 计算机学院

使用班级 2013级理工专业 考试日期 2014.1.14

注意事项:

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

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

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

A.100

B.256

C. 0FFE

D.00FF

命题教师:

冯小虎

共14页 第1 页

学生所在学院 专业、班级 学号 姓名

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

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来判断。

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;

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

}

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

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

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

0且 B. ??

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

且且

C.??

?≠<=<=d b a d

c b a y c 10

且且 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; } }

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

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

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];

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];

江苏大学试题第6页

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]);

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. Tiananmen

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

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

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+=b;printf("%d",a);}

main()

{ int c=20;

fun(c);a+=c;printf("%d\n",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);}

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);}

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

#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)____,sq[1][1]= ___(5)_____,sq[2][0]= ___(6)_____。

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)____。

#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)_____。

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

#include

int func2();

int i=2;

void func1(int i)

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

int func2()

{ if(i<3)

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

return i;}

void main()

{ int i=0;

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

8. 以下程序的输出结果是___(10)______。 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) ) {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时则停止计算。级数如下:

x-!133?x +!255?x -!377?x +……+!

)12()12(n n x n ?++ #include #include main()

{float x, t, sum, s=1; int n=0; scanf("%f",&x); t=x; sum=t;

while( (3) >=1e-6)

{n++; s=-s; t=t* (4) ; sum=sum+s*t/ (5) ; } printf("sum=%f\n",sum);}

3. 以下程序由终端键盘输入一个文件名,然后把输入的字符依次存放到该文件中,用#号作为结束输入的标志。

#include

main()

{FILE *fp; char ch,fname[10];

printf("Enter the name of file\n");

gets(fname);

if((fp=_____(6)__________________)==NULL)

{printf("Open error!\n"); exit(0);}

printf("Enter data:\n");

while(( (7) ') fputc(ch,fp);

fclose(fp); }

4. 设某班级有学生30名,学期末统计每位学生各课程成绩总分后,将前10名学生的学号、姓名、总分张榜公布,以下程序输出张榜清单。

#define N 30

main()

{struct STU

{long num;

char name[20];

int score; };

struct STU a[N],t; int i , j , k;

for(i=0;i

scanf ("%ld%s%d", &a[i].num , a[i].name , &a[i].score);

for(i=0;i

{k=i;

for(j=i+1;ja[k].score)k=j;

if(i!=k)

{____(8)______;__(9)________;__(10)_______;}}

printf("Number Name Score\n");

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

printf("%-10ld%-10s%-8d\n",a[i].num , a[i].name , a[i].score);}

5. 编写一个函数实现将字符串s1和字符串s2合并(不得使用strcat函数),合并后的字符串按其ASCII码值从小到大进行排序,相同的字符在新字符串中只出现一次。

#include

(11)

void str_link(char *s1,char *s2)

{

int i=0,k;

k=strlen(s1);

while(s2)

{

*(s1+k+i)=*s2++;

i++;

}

(12) ;

}

void sort(char *s1)

{

int i,j,k;

char t;

k=strlen(s1);

for(i=0;i

for(j=i+1;j

if( (13) )

{

t=s1[i];

s1[i]=s1[j];

s1[j]=t;

}

}

void del_char(char *s)

{

int i,k,j=0;

k= (14) ;

for(i=0;i

if(s[i]==s[i+1])

(15)

else

s[j++]=s[i];

s[j]='\0';

}

void main()

{

char str1[79]="Study hard ",str2[]="good luck"; str_link(str1,str2);

puts(str1);

sort(str1);

puts(str1);

del_char(str1);

puts(str1);

}

江 苏 大 学 试 题 答 题 纸 第14页

(2013-2014年第1学期)

课程名称 程序设计(C 语言) 开课学院 计算机学院

使用班级 2013级理工类专业 考试日期 2014.1.14

题号 一 二 三 总分 核查人

得分 阅卷人

二、程序阅读题(20分,每空2分) (1) (2) (3) (4) (5) (6) (7) (8) (9)

(10)

三、完善程序题(共30分,每空2分) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)

任课老师__________学生所在学院 专业、班级 学号 姓名

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

同济大学C语言期末考试卷 2005-2006学年第二学期《C程序设计期末试卷》(闭卷) 一、单项选择题(20分) 1. 在定义函数时,能用以下(1) 标识符作函数名。 A.struct B._abc C. 8abc D. abc@https://www.doczj.com/doc/3914550821.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语言期末复习题汇总

选择题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)

大一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语言期中考试试题及答案

《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关

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语言程序设计期末考试试卷和答案

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效

A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设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).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>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语言期末考试题

大一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;

汇编语言单片机考试试题和答案

一.单项选择题(30分) 在中断服务程序中至少应有一条() A.传送指令 B.转移指令 C.加法指令 D.中断返回指令 2.当MCS-51复位时,下面说法准确的是() A.PC=0000H B.SP=00H C.SBUF=00H D.(30H)=00H 3.要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是() A.MOV B.MOVX C.MOVC D.以上都行 4.ORG2000H LACLL3000H ORG 3000H RET 上边程序执行完RET指令后,PC=() A.2000H B.3000H C.2003H D.3003H 5.要使MCS-51能响应定时器T1中断,串行接口中断,它的中断允许寄存器IE的内容应是() A.98H B.84H C.42H D.22H 6.JNZREL指令的寻址方式是() A.立即寻址 B.寄存器寻址 C.相对寻址 D.位寻址 7.执行LACLL4000H指令时, MCS-51所完成的操作是( ) A保护PCB.4000HPC C.保护现场 D.PC+3入栈, 4000HPC 8.下面哪条指令产生信号() A.MOVX A,@DPTR B.MOVC A,@A+PC C.MOVC A,@A+DPTR D.MOVX @DPTR,A 9.若某存储器芯片地址线为12根,那么它的存储容量为() A. 1KB B. 2KB C.4KB D.8KB 10.要想测量引脚上的一个正脉冲宽度,则TMOD的内容应为() A.09H B.87H C.00H D.80H 11.PSW=18H时,则当前工作寄存器是() A.0组 B. 1组 C. 2组 D. 3组 12.MOVX A,@DPTR指令中源操作数的寻址方式是() A. 寄存器寻址 B. 寄存器间接寻址 C.直接寻址 D. 立即寻址 13. MCS-51有中断源() A.5 B. 2 C. 3 D. 6 14. MCS-51上电复位后,SP的内容应为( ) A.00H B.07H C.60H D.70H https://www.doczj.com/doc/3914550821.html,0003H LJMP2000H ORG000BH LJMP3000H 当CPU响应外部中断0后,PC的值是() A.0003H B.2000H C.000BH D.3000H 16.控制串行口工作方式的寄存器是() A.TCON B.PCON C.SCON D.TMOD 17.执行PUSHACC指令, MCS-51完成的操作是() A.SP+1SP, ACCSP B. ACCSP, SP-1SP C. SP-1SP, ACCSP D. ACCSP, SP+1SP 18.P1口的每一位能驱动() A.2个TTL低电平负载 B. 4个TTL低电平负载 C.8个TTL低电平负载 D.10个TTL低电平负载 19.PC中存放的是() A.下一条指令的地址 B. 当前正在执行的指令 C.当前正在执行指令的地址 D.下一条要执行的 指令 20.8031是()A.CPU B.微处理器 C.单片微机 D.控制器 21.要把P0口高4位变0,低4位不变,应使用指令( ) A.ORL P0,#0FH B.ORL P0,#0F0H C.ANL P0,#0F0H D.ANL P0,#0FH

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

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第 一、 单项选择题(本大题共 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); 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)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】

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