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;