文档库 最新最全的文档下载
当前位置:文档库 › C程序设计试卷A卷

C程序设计试卷A卷

C程序设计试卷A卷
C程序设计试卷A卷

一选择题 (本题共20分,每小题1分,请将答案填入下划线位置)

1. 合法的变量定义为 c

A) int a; b; c; B) int a; b, float c;

C) int a, b; float c; D) int a, b, float c;

2. 下列常量中,为不合法的实型常量表示的是 d

A) .0032 B) 0.0 C) 0.3242E8 D) .E3

3. 定义变量:int x=3,y=2;float a=2.5; 则(x+y)/2+(int)a的值为 b

A) 5 B) 4 C) 3 D) 3.5

4. 下列常用转义字符中不正确的是b

A) \\ B) \c C) \012 D) \t

5. 设a、b为整型,则表达式(a=2,b=5,b++,a+b)的值是 d

A)2 B)6 C)7 D)8

6. 有输入语句:scanf("%d,%d",&a,&b);

为使变量a、b分别为5和3,从键盘输入数据的正确形式为____b_

A)5 3<回车> B)5,3<回车>

C)a=5 b=3<回车> D)a=5,b=3<回车>

7. 字符a的ASCII码是97,以下程序段的输出结果是b_____

char ch='b'; printf("%d %c",ch,ch);

A)96 b B)98 b C)b,96 D)b,98

8. 有数学表达式(x≠y)且(y≥z) , 则对应的C表达式为 b

A)x≠y,y≥z B)(x!=y)&&(y>=z)

C)(x<>y)||(y>=z) D)x≠y ||(y>=z)

9. 设a=1,b=2,c=3,d=4,则表达式“a>b?a:c>d?c:d”的值为 a

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

10. 在下面给出的四个语句段中,能够正确表示求绝对值函数的语句段是 a

A)if (x!=0) B)y=0;

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

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

else y=0; else y=-1;

C)if (x<0) y=-1; D)y=-1;

if (x!=0) y=1; if (x!=0)

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

else y=0;

11. 设有如下程序段,正确的答案是 c

int k=3;

while (k!=0)

{ k- -; }

A)无限循环下去B)只执行一次循环体

C)执行3次循环体D)一次也不执行

12. 设有如下程序段,正确的答案是 a

int x;

for (t=1; t<=100; t++){

scanf(“%d”,&x);

if (x<0) continue;

printf(“%3d”,x);

}

A)当x<0时整个循环结束B)x>=0时什么也不输出

C)printf函数永远也不执行D)最多允许输出100个非负整数

13. 若有数组定义语句:int a[10]; 则对a数组元素的正确引用是 c

A) a[3.5] B) a(8) C) a[6-5] D) a[10]

14. 合法的指针数组说明语句是 a

A) char *x[2]={2,3}; B) char *x[2]={“2” , “3”};

C) char *x[2]={ 2.0 , 3.0}; D) char *x[2]={“2” ; “3”};

15. 若有如下程序,则屏幕输出结果是 c

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

int *pa=&a;

printf(“%d”,*pa + *(pa+3));

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

16. 设p1是指向函数int func(int,int)的指针变量,调用该函数的语句是 __c___

A) *p1(2,3); B) *p1(int,int);

C) func(int x, int y); D) p1(2,3);

17. 以下不正确的字符串赋值语句是 d

A) char *s; s="abcde"; B) char s[ ]="abcde";

C) char s[10]; s="abcde"; D) char *s="abcde";

18. 若有定义:int a[3][4],不能表示数组元素a[1][1]的是 b

A) *(a[1]+1) B) *(a+5) C) *(&a[1][1]) D) *(*(a+1)+1)

19.若有以下结构体定义,则正确的引用或定义是 b

struct example

{

int x;

int y;

}v1;

A)example.x=10 B)example v2;v2.x=10

C)struct v2;v2.x=10 D)struct example v2={10}

20. 已知有如下定义,则test占用内存的字节数是

union{ int i; char c; float a; }test;

A)4 B)5 C)6 D)7

二、根据给出的程序写运行结果(本题共24分,每小题4分)

1. 下列程序执行后的输出结果是

void main( ){

int x=5,a=1,b=3,c=5,d=5;

if (a

if (c

else

if (a

else x=3;

else x=4;

printf("%d",x);

}

2. 下列程序执行后的输出结果是

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

}

3. 下列程序执行后的输出结果是

void main()

{

char s[]="abcdef";

char *p=s;

*(p+2)+=3;

printf("%c,%c\n",*p,*(p+2));

}

4. 下列程序执行后的输出结果是

void main()

{ struct s

{

int n;

int *m;

}*p;

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

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

p=arr;

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

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

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

}

5. 下列程序执行后的输出结果是

void main()

{

union un

{

short int a;

char c[2];

}w;

w.c[0]=10;w.c[1]=1;

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

}

6. 下列程序执行后的输出结果是

struct STU

{ char name[10];

int num;

};

void f1(struct STU c)

{ struct STU b={"LiSiGuo",2042};

c=b;

}

void f2(struct STU *c)

{ struct STU b={"SunDan",2044};

*c=b;

}

void main( )

{ struct STU a={"YangSan",2041},b={"WangYin",2043};

f1(a);

f2(&b);

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

}

三、填空题(本题共30分,每小题6分)

1.输入月份号,输出该月英文名。如输入“5”,则输出“May”

void main( )

{

char *ch[ ]={"January","February","March","April","May","June",

"July","August","September","October","Novenmber","December"};

int month= 0;

printf("请输入月份:");

scanf("%d", ________);

if(month<1 || ________ )

printf("您输入的月份有错:\n");

printf("您输入的月份是:%s",*(ch+_______));

}

2. 将若干字符串按字符顺序(由小到大)输出

void main( )

{

char *name[ ]={"Follow me","BASIC","Java","Delphi","Computer design"};

char *temp;

int n=5, i, k, j;

for (i=0; i

{

_______;

for (j=i+1;j

if (strcmp(name[k],name[j])>0) k=j;

if( _______ )

{temp=name[i];

name[i]=name[k];

name[k]= ______;

}

}

}

3. 求一个4*4矩阵两条对角线之和

void main( )

{ int i,j,a[4][4],sum=0;

printf("请输入矩阵:\n");

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

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

scanf("%d",________);

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

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

if(i= =j|| _______) sum+=a[i][j];

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

}

4. 判别素数

void main( )

{ int a, i, flag=0;

printf("请输入a:\n");

scanf("%d",&a);

for (i= ______ ; i<= a-1 ; i++)

{ if(a%i= =0)

{ flag=1;

______;

}

}

if( _______ ) printf("%d是素数\n",a);

else printf("%d不是素数\n",a);

}

5. 输出文件exa7_1.c的内容

#include

#include

void main()

{

_______ *fp;

char ch;

if((fp=fopen("exa7_1.c", "r"))==NULL)

{

printf("Cannot open file, strike any key exit!");

getche(); exit(0);

}

ch=________ (fp);

while (ch!=EOF)

{

putchar(ch);

ch=fgetc(fp);

}

_______(fp);

}四.编程题(本题共26分)

1. 猜数游戏:从键盘输入一个10以内的正整数,判断其值是否等于6。若大于6则输出“too big”,若小于6则输出“too small”,若等于6则输出“it is true”, 在循环中输入数据,当输入数据超出10时结束该循环(10分)。

2.某班期末考试科目为数学、英语和物理,该班有30名学生参加考试,编程实现下述功能(16分)。

(1)定义函数sort,计算每个学生总成绩,按总成绩由高到低排出成绩名次(6分)。

(2)主函数实现学生信息的输入,这些信息包括学号(StuNum)、数学(Math)、英语(Eng)、和物理(Phi)成绩(10分)。提示:定义30行5列的整型数组。

相关文档