2004级C语言考试试题A卷及答案

更新时间:2023-09-08 22:37:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2004级C语言考试试题(A卷)及参考答案

姓名_________ 学号_________ 班级____________

学年第 学期 考试科目: 考试类型: 开卷/闭卷 考试时间: 分钟 题号 分值 评卷人 一 二 三 四 五 总分 1.下列4组字符串中都可以用作C语言程序中的标识符的是__d___ A print 3d oodc Abc B I\\am onehalf start$it 3Pi C Pxq My->book line# His.age D str_l Cpp pow while 2.下面的说法正确的是____c___

A C程序是符号构成的 B C程序由标识符构成 C程序是由函数构成的 D C程序由c语句构成 3.47相等的十六进制数是_a_____

A 2F B 215 C 32F D 115

4.c语言中,长整型long数据在内存中的存储形式是__d____ A ASCII B 原码 C 反码 D补码

5.int 类型的数据长度为2个字节,则unsigned int 类型数据的取值范围是____b___

A 0至255 B 0至65535 C –32768 至 32767 D –256 至255

6.int i=6 ,j;,则 执行语句j=(++i)+(i++)后的j的值是___b__ A 4 B 14 C 13 D 15

7.已有定义int x; float y; 且执行scanf(“=%f”, &x, &y); 语句时,从第一列开始输入数据12345□678,则x的值为__b①_ y的值为_b___②_ ① A 12345 B 123 C 45 D 345

② A 无定值 B 45.000000 C 678.000000 D 123.000000]

8.已知: int x=10; y=20; z=30;以下语句执行后x, y,z 的值是___a__ if (x>y)

z=x; x=y; y=x;

A x=20, y=20, z=30 B x=20,y=30,z=30 C x=20, y=30, z=10 D x=20,y=30,z=20;

9.若运行时给变量x输入12, 则以下程序的运行结果是__a____ 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 10. 合法数组的说明语句是__b____

A int a[]=”string”; B int a[]={0,1,2,3,4,6}; C char a=”string”; D 0char a[]={0,1,2,3,4,6}; 11. 已知: int a[10]; 则对a 数组元素的正确引用是___d__ A a[10] B a[3.5] C a(5) D a[10-10]

12. 若二维数组a有m列,则在a[i][j]前的元素个数为__b____

A j*m+i, B i*m+j C i*m+j-1 D i*m+j+1

13. 已知:int a, *p=&a; 则下列函数调用中错误的是___d____

A scanf(“%d”, &a); B scanf(“%d”,p); C printf(“%d”,a); D printf(“%d ”,p);

14. 设有说明int (*ptr)[M];其中的标识符 ptr 是___c___.

A M个指向整型变量的指针 B 指向M个整型变量的函数指针 C 一个指向具有M个整型元素的一维数组的指针 D 具有M个指针元素的一维数组的指针。 15. 已知; double *p[6]; 它的含义是__c_____

A p是指向double 型变量的指针 B p是double 型数组 C p是指针数组 D p是数组指针

16 已知:char s[10], *p=s, 则在下列语句中,错误的语句是____b__

A p=s+5; B s=p+s; C s[2]=p[4]; D *p=s[0];

17.已知: char b[5], *p=b; 则正确的赋值语句是__c_____

A b=”abcd”; B *b=”abcd”; C p=”abcd”; D *p=”abcd”;

18.若用数组名作为函数调用的实参,传递给形参的是__a______

A 数组的首地址 B 数组第一个元素的值 C 数组中全部元素的值 D 数组元素的个数 19 下面程序的运行结果_____a___

f(int x, int y) { return (y-x); } main()

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

int f(), ( *g )( )=f; c=(*g)(a, b);

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

a 1 b 2

c 3 d 前面三个答案均是错误的 20.已知int **p; 则变量p是 _b_______

A 指向int 的指针 B 指向指针的指针

C int 型变量 D 以上三种说法均是正确的 21.当声明一个结构体变量时系统分配给它的内存是_ a_

A 各成员所需要内存量的总和 B 结构中第一个成员所需的容量

C 成员中占内存量最大者所需的容量 D 结构中最后一个成员所需内存量 22.若执行fopen函数时发生错误,则函数的返回值是____b___

A 地址值 B NULL C 1 D EOF

23 为了显示文本文本文件的内容,在打开文件时,文件的打开方式应当为___r__

A “r” B “w+” C “wb+” D “ab+” 24.说明语句“* int *(*p)( ); ”的含义是___d____ A p是一个指向int型数据的指针。 B p是指针变量,它构成了指针数组。 C p是一个指向函数的指针,该函数的返回值是一个整型。

D p是一个指向函数的指针,该函数的返回值是一个指向整型的指针。 25.函数的功能是交换和中的值,并且通过正确调用返回交换的结果,能正确执行此功能的函数是______b_______

A funa( int * , int *y ) { int *p;

*p=*x; *x=*y; y=*p; }

B funb(int , int y ) { int t;

t= x; x =y; y=t; }

C func(int * x, int *y) { *x =*y; *y=*x; }

D func(int *x , int *y)

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

二 填空题 (40=5*8)

1. 写出下面程序的输出结果_dec=120 oct=170 hex=78 ASCII= x ________ main()

{ char c=’x’;

printf(“dec=%d,oct=%o, hex=%x,ASCII=%c\\n”c,c ,c,c); }

2.下面程序的输出是__a=2 b=1____ main()

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

switch(x)

{ case 1: switch(y)

{ case 0: a++; break; case 1: b++ ; break; } case 2: a++; b++; break; }

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

}

3.下面的程序是求出数组A的两条对角线上的元素之和。

则①是_j=2___②是__j>=0__ main()

{ int a[3][3]={1,3, 6,7,9,11,14,15,17}} for(i=0; i<3; i++)

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

if(i==j) sum1=sum1+a[i][j]; for(i=0;i<3;i++) for(①; ②; j - -) if(i+j==2)

sum2=sum2+a[i][j];

printf(“sum1=%d, sum2=%d\\n”, sum1,sum2); }

4.下面程序的运行结果事是 _______ main()

{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};

int *p,i;

for(p=a;p

{ if(i%4==0) printf(“\\n”); printf(“M”,*p); } }

输出结果是 1 3 5 7

9 11 13 15 17 19 21 23

5.以下程序的运行结果是 ___-1 3 6 8 9____________ main()

{ int a[5]={9,6,8,3,-1} sort(a);

for( i=0;i<=4; i++) printf( “%d”, a[i]); }

sort(int a[] ) { int i,j,t,p;

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

for(i=j; i<=4; i++) if(a[i]

}

6.下面程序的运行结果是___0 1 2 3____ func( int b[]) { int j;

for( j=0; j<4; j++) b[j]=j; }

main()

{ int a[4];

func(a);

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

printf(“=”,a[i]); }

7.下面程序的 运行结果是___Zhao___ struct stu { int num;

char name[11]; int age; }

void fun(struct stu *p)

{ printf(“%s\\n”,(*p).name ); }

main() {

struct stu students[3]={{9801,“zhong”, 20},{9802,”wang”,19},{9803, “zhao”, 18}}; fun(students+2) }

8.下列程序输出结果是________ struct tree { int x; char s; } t;

func(struct tree t) { t.x=10;

t.s=”computer”; return (0); }

main() { t.x=1;

t.s=”minicomputer”;

func(t);

printf(“%d,%s”, t.x, t.s,); }

输出结果是:1, minicomputer

三 完成下面的程序(10 ) file *fp; main()

{ int i,j;

if( (fp=fopen(①,”wb”))==NULL) exit(0);

for(i=0; i<10; i++) { scanf(“%d”, &j);

fwrite(②, sizeof(int ), ③); } }

① A ‘bi.dat’ B “bi.dat” C *fp D fp ② A j B &j C *j D fp ③ A j B “bi.dat” C *fp D fp ① B ② B ③ D

func(t);

printf(“%d,%s”, t.x, t.s,); }

输出结果是:1, minicomputer

三 完成下面的程序(10 ) file *fp; main()

{ int i,j;

if( (fp=fopen(①,”wb”))==NULL) exit(0);

for(i=0; i<10; i++) { scanf(“%d”, &j);

fwrite(②, sizeof(int ), ③); } }

① A ‘bi.dat’ B “bi.dat” C *fp D fp ② A j B &j C *j D fp ③ A j B “bi.dat” C *fp D fp ① B ② B ③ D

本文来源:https://www.bwwdw.com/article/c9kh.html

Top