C(Ⅱ)期末试卷(含答案)

  • 格式:doc
  • 大小:54.00 KB
  • 文档页数:12

江 苏 大 学 试 题课程名称 计算机基础及C语言(Ⅱ) 开课学院 计算机学院

使用班级 考试日期 .

注意事项:

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

2.答案均请用铅笔涂在答题卡上。将答题卡上的试卷类型涂A(补考则涂B)。

3.请将答题卡、试卷都写上班级、学号、姓名、任课教师。考试结束分别交予监考老师。

一、 选择题(30分,每小题1分,请涂写在答题卡上)

1. 以下常量中正确的是D.

A.'abc' B. ’\x123’ C.3。145E—1.2 D. ”a”

2. 以下选项中,不能用作变量名的是D。

A. _1234_ B._1_2 C.int_2_D.2_int_

3. 设有“int a;",以下不能正确表达10

A。 10

C。a>10&&a〈15 D。!(a〈=10)&&!(a〉=15)

4. 已知数据类型定义和变量声明如下:

struct sk

{int a; float b;}data[2], * p;

若有p=data,则以下对data[0]中成员a的引用中错误的是A.

A. data[0]-〉a B. data—〉a C. p->a D. (* p)。a

5. 下列程序的程序输出结果为A。

#define X(a) a*a

main()

{ printf(“%d\n”,X(4+5));}

A.29 B。18 C。20 D。25

6. 若有定义“enum seq{mouse, cat, dog, rabbit=0, sheep, cow=6, tiger};” 则执行语句“printf(“%d”,cat+sheep+cow);"后输出的结果是_____C______。

A。 6 B。7 C.8 D。 9

7. 以下能将字符串“good!”正确地存放在字符数组s中,或使指针s能指向这个字符串的是______D______。

A。 char s[4]={‘g’, ‘o’, ‘o’, ‘d’, ‘!’}; B. char s[5];s=“good!”;

C.int s[5]=“good!”; D.char *s;s=“good!”;

共 9页

第 1 页 江 苏 大 学 试 题第2页

8. 设有说明:

union data

{ int i ;float f;

struct{ int x;char y;}s;

double d; }a;

则变量a 在内存中所占字节数为_A__ 。

A。8B。17 C。9 D.15

9. 设已有非空文本数据文件filel.dat,要求能读出文件中原有的全部数据,并在文件原有数据之后添加新数据,则用FILE *fp=fopen(”file1。dat”,D)打开该文件。

A。 ”w"B。 ” w+”C。 "r+" D. "a+”

10. 以下关于if语句的错误描述是B.

A。 条件表达式可以是任意表达式

B. 条件表达式只能是关系表达式或逻辑表达式

C. 条件表达式的括号不可以省略

D. 与else配对的if语句是其之前最近的未配对的if语句

11. 在以下不致造成死循环的语句是:A.

A。 for(y=0,x=1;x>++y;x=i ++)i =x;

B。 for(; ;x+=i );

C. while(x=8)x--;

D. for(i =10,sum=0;sum<=i ;)sum= --i ;

12. 设有定义:“float y=3.45678;int x;”,则以下表达式中能实现将y中数值保留小数点后2

位,第3位四舍五入的表达式是:B。

A。y=(y*100+0。5)/100。0 B. x=y*100+0.5,y=x/100.0

C。 y=y*100+0。5/100.0 D。y=(y/100+0.5)*100.0

13. 以下程序段输出结果是:C。

int a=10,b=11,c=12,s;

s=a++〈=10&&b-—〈=2&&c++;

printf(“%d,%d,%d,%d”,s,a,b,c);

A. 0,11,10,13 B. 1,11,10,13 C。 0,11,10,12 D。1,11,10,12

14. 设有“char s[ ]=“Program”,*p=s;”,则以下叙述中正确的是:C.

A. 数组s的内容与指针变量p中内容相同

B. 数组s的长度与strlen(p)的值相等

C. p[5]的值等于s[5]的值

D。 sizeof(s)等于sizeof(*p)

15. 下列程序段执行后变量j的值是:B.

int j;char *s=”x\045\"”;for(j=0;*s++;j++); 江 苏 大 学 试 题 第3页

A。 7 B. 3 C. 4 D. 5

16. 若有定义语句“static char str[4][20]={ "thank", "you",”very",”much! ”};”则str数组中存储’\0’的数组元素有:D个。

A. 0 B。 17 C. 21 D。 63

17. 下列正确的声明说明语句是D。

A. float m=15,n=4,q=m%n;

B. int n=10, y[n];

C. char p[2][]={ "DOS","WINDOWS”};

D. char *p[]={ "DOS",”WINDOWS”,"UNIX"};

18. 设有函数f的定义如下:

void f(int x,int *y)

{ *y=x*x*x;}

main( )

{ int j,c[4]={1,2,3,4},s[4]={0};

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

{ /* 调用f函数*/

printf(“%d”,s[j]); }

若在main函数中欲调用函数f,则正确的调用语句是______C______。

A. f(c,s);B. f(c[i ],s[i]);

C。f(*(c+i),&s[i]); D. f(c+i ,s+i );

19. 执行以下程序段后,x,w的值为_____C_______。

int x=0,y=1,z=2,w;

if(x++)w=x;

else if(x++&&y〉=1)w=y;

else if(x++&&z〉1)w=z;

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

20. 已知有声明语句“int a[5]={1,2,3,4,5},*p,i;”,以下语句中不能正确输出a数组全部元素值的是_____C______。

A. for(p=a,i=0;i<5;i++) printf(”%d”,*(p+i));

B. for(p=a;p

C. for(p=a,i=0;p〈a+5;p++,i++) printf("%d”,p[i]);

D. for(p=a;p

江 苏 大 学 试 题 第4页

21. 该程序运行后,输出x的值是__________,y的值是_____D_____.

int x=1;

main()

{int y,k; y=f(3);printf(”%d\n%d”,x,y);}

int f(int x)

{if(x==3) {int x=2;return x; }

else return x;

}

A。 0,1 B. 1,1 C. 2,1 D。1,2

22. 当程序读写数据文件时,需要有声明语句“FILE *fp;”,在该声明语句之前必须包含头文件______B______.

A。 string.hB. stdio。hC. math。hD。ctype。h

23. 在文件中,以符号常量EOF作为文本文件的结束标记,EOF代表的值是_____B____。

A。 —2B. -1C。 0D.1

24. 若有声明“double a[2][3]={1,2,3,4,5,6};”,则下列表达式中不能正确引用a[1][1]值的是__C___。

A. *(a[0]+4)B. *(a[1]+1)C. *(*(a+3)+1)D。 *(*a+4)

25. 有以下程序段

typedef struct NODE

{ int num; struct NODE *next;} OLD;

则以下叙述中正确的是_____D____.

A。 以上的说明形式非法 B。 NODE是一个结构体类型

C。 OLD是一个结构体类型 D。 OLD是一个结构体变量

26. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_____D_____。

A。k%2 B。k%2==1 C. (k%2)!=0 D。!k%2==1

27. 若有定义:int x=0, *p=&x;,则语句printf("%d\n”,*p);的输出结果是

A.随机值 B。0C.x的地址 D.p的地址

28. 以下能正确定义且赋初值的语句是___B______。

A。int n1=n2=10; B.char c=32; C.float f=f+1。1; D。double x=12。3E2。5;

29. 设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是 C

A.k=k〉=k B.—k++ C.k%int(f) D。k>=f>=m

30. 以下程序运行后的输出结果是:___B_____

A。2 2 B.7 2 C. 7 5 D。6 2

main()

{char a[7]= ”a0\0a0\0”; int i, j;

i=sizeof(a); j=strlen(a);

printf("%d %d”,i,j);}