c语言程序设计测试题8

  • 格式:doc
  • 大小:93.00 KB
  • 文档页数:6

程序设计基础(1-1) 共6页 第1页 自测题8

时间为120分钟

一、选择题(本大题共20小题,每小题1.5分,共30分)在每个小题列出的四个选项中

只有一个选项是符合题要求目的,请将正确选项前的字母填写在题后的括号内。

1. 下面标识符中,合法的用户标识符为【 】

A. dy B. a?e2 C. 3AB D. float

2. 以下字符中,不正确的C语言转义字符是【 】

A. '\t' B. '\018' C. '\011' D. '\n'

3. 若有说明“int i,j=7;*p=&i;”,则与“i=j;”等价的语句是【 】

A.i=*p; B.*p=*&j; C.i=&j; D.i=**p;

4. 下列语句定义x为指向int类型变量a的指针,其中正确的是【 】

A.int a,*x=a; B.int a,*x=&a; C.int *x=&a, a; D.int a, x=a;

5. 若有int x=1,y=1,表达式(!x||y--)的值等于【 】

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

6. 以下描述错误的是【 】

A. while循环式判断表达式,后执行循环体语句

B. do-while和for均是先执行循环体语句,后判断表达式

C. for、while和do-while循环中的循环体语句均可以由空语句构成

D. 使用while和do-while循环时,循环变量初始化操作应在循环语句之前完成

7. 有以下程序:

#include

main()

{ int a=1234;

float b=123.456;

double c=12345.54321;

printf(“%2d,%2.1f,%2.1f”,a,b,c); 题号 一 二 三 四 五 总分

得分

阅卷人 合分人 程序设计基础(1-1) 共6页 第2页 }

执行后【 】

A. 输出格式中位数不够,无输出 B. 输出结果为:12,12.4,12.5

C. 输出结果为:1234,123.5,12345.5 D. 输出结果为:1234,123.4,1234.5

8. 设有定义int x[5]={2,3,4,5};,则数组占用的内存字节数是【 】

A. 3 B. 6 C. 8 D. 10

9. 在一个函数(或复合语句)中定义的变量的作用域为【 】

A. 本程序的全部范围 B. 本文件的全部范围

C. 本函数(或复合语句)内范围 D.从定义该变量的位置开始到本文件结束

10. 以下描述正确的是【 】

A. C语言程序总是从第一个函数开始执行

B. 在C语言程序中,要调用的函数必须放在main()函数的前面定义

C. C语言程序中的main()函数必须放在程序的开始部分

D. C语言程序总是从main()函数开始执行

11. 若有说明:int a[5]={2,4,6,8,10},*p=a;则数值为8的表达式是【 】

A. *p+4 B. *(p+3) C. *p+=4 D. p+3

12. 若函数为int型,变量z为float型,该函数体内有语句return(z);,则该函数返回的值是【 】

A.int型 B.float型 C.static型 D.extern型

13. 对于下列定义的枚举型:enum color{yellow,green,blue=5,red,brown};则枚举常量yellow和red的值分别是【 】

A. 3,6 B. 1,6 C. 0,6 D. 0,3

14. 对于下面结构型的定义:struct data{int i;float j;char ch;};,则sizeof(struct data)的值应该是【 】

A. 4 B. 2 C. 7 D. 1

15. 在函数调用时,如果实参是简单变量,它与对应形参之间的数据传递方式是【 】

A.地址传递 B.单向值传递

C.由实参传递给形参,再由形参传递给实参 D.传递方式由用户指定

16. 在函数调用语句“f(a,b,(c,d));”中,含有的实参个数是【 】

A.3 B.4 C.5 D.语法错误

17. 程序中调用了库函数strcat,必须包含头文件【 】 程序设计基础(1-1) 共6页 第3页 A.math.h B.string.h C.ctype.h D.stdlib.h

18. 库函数fscanf函数是按指定的格式将数据从指定的文件中读出,如果赋值失败,则返回【 】

A.0 B.1 C.-1 D.eof

19. 要在C盘根目录下新建一个MyFile.txt文件用于输出,正确的语句是【 】

A. FILE *fp;fp=fopen("C:\MyFile.txt","r")

B. FILE *fp;fp=fopen("C:\\MyFile.txt","w")

B. FILE *fp=fopen("C:\MyFile.txt","w")

D. FILE *fp=fopen("C:\\MyFile.txt","r")

20. 有如下语句:int a[10]={6,7,8,9,10},则对此声明理解正确的是【 】。

A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4]

C.将5个初值依次赋给a[6]至a[10] D.此语句不正确

二、填空题(本大题共8小题,每空1.5分,共15分)

1. 能表述"x<20或x>30 "的C语言的表达式是 。

2. 一个c程序是由若干个函数构成的,其中必须有一个 函数。

3. 在内存中存储"A "要占用 个字节,存储'A'要占用 个字节。

4. 若定义int a[10]={1,2,3};,则a[5]的值是 。

5. 设“int x=10,*p=&x;”,执行语句“printf(“%d”,(*p)++)”的输出结果是 。

6. 若有说明:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是 , * (a+5)的值是 。

7. 定义语句为“char a[]="class",b[]="Class";”,语句“printf("%d",strcmp(a,b));”输出结果是 。

8. 对于下面共用型的定义:union data{int i;float j;char ch;};,则sizeof(union data)的值应该是 。

三、写出程序运行结果(本大题共5小题,每题4分,共20分)

1. #include

main()

{ int num=0;

while(num<=2)

{ num++;

printf(“%d\n”,num);

}

} 第1题运行结果是:

程序设计基础(1-1) 共6页 第4页 2. #include

void main()

{

char ch[7]={"65ab21"};

int i,s=0;

for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2)

s=10*s+ch[i]-'0';

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

}

3. #include

void f( );

void main()

{ f( );

f( );

f( );

}

void f( )

{ static int a=1;

auto int b=0;

a=a+1;

b=b+1;

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

}

4. #include

void main()

{

int a,b;

for(a=1,b=1;a<=100;a++)

{ if(b>=20)break;

if(b%3==1)

{ b+=3;

continue;}

b-=5;

}

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

5. struct stu

{int num;

char name[10];

int age;};

void fun(struct stu *p) { printf("%s\n",(*p).name); } 第2题运行结果是:

第3题运行结果是:

第4题运行结果是:

第5题运行结果是:

程序设计基础(1-1) 共6页 第5页 main(){

struct stu students[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803, "Zhao",18}};

fun(students+2);}

四、程序填空(本大题共3小题,每空1.5分,共15分)

1. 下面的程序段是检查输入的算式表达式中圆括号是否配对,并显示相应的结果。通过键盘输入表达式,以输入回车作为表达式输入结束,然后显示结果。

#include

void main()

{ int count=0;

char ch;