1、C程序设计模拟试卷 (考试时间120分钟) 专业班级_____________________学号_______________姓名____________ 题号 1-35 36-67 68 总分 得分 评卷人 试题说明:本试卷全部为单项选择题,四个选项中只有一个是正确的。请把你的选择填在括号内。1-35题,每小题1分,36-66题,每小题2分,第67题3分,满分100分。 1、结构化程序设计的三种基本控制结构是( D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环
2、2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑 程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m
3、n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是( A )。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是( A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是( B )。 A、1 B、2
4、 C、4 D、8 10、C语言中基本的数据类型包括( B )。 A、整型,实型,逻辑型 B、整型,实型,字符型 C、整型,字符型,逻辑型 D、整型,实型,逻辑型,字符型 11、设有变量定义如下: char ch; int i; float f; 表达式 ch / i + i﹡f + 1.234 的结果的数据类型是( D )。 A、float B、char C、int D、double 12、C语言中前后运算对象都必须是整型的运算符是( A )。 A、% B、/ C、++ D、! 13、已定义c为
5、字符型变量, 则下列语句中正确的是(A )。 A、c=98; B、c=’98’; C、c=”98” D、c=”b” 14、以下实型常量中,符合C语言语法的是( A )。 A、.5E-3 B、1.2E0.5 C、E15 D、3.14.159E 15、以下4个选项中,不能看作一条语句的是( C )。 A、if (a>0); B、{ ; } C、if (b==0) m=1; n=2; D、a=0, b=0, c=0; 16、要用C语言表示数学关系式a≥b≥c,正确的表达式是( D )。 A、a>=b>=c B、(a>=b)& (
6、b>=c) C、(a>=b) || (b>=c) D、(a>=b)&& (b>=c) 17、设 i, j, k 均为整型变量, 则执行以下 for 语句后, k 的值是( C )。 For (i=0, j=10; i<=j; i++, j--) k=i+j; A、0 B、5 C、10 D、20 18、若表达式 !x的值为1, 则下列表达式( A或C )的值为1。 A、x = = 0 B、x = = 1 C、x != 1 D、x != 0 19、已知整型变量a=13, b=16, 则a & b的值为( A )。
7、A、0 B、-3 C、1 D、3 20、在一个表达式中含下列运算符,优先级最高的是( X )。 A、赋值运算符 B、算术运算符 C、逻辑运算符 D、关系运算符 21、下列语句组中,正确的是( C )。 A、char *s; s={"Beijing"}; B、char s[8]; s={"Beijing"}; C、char *s; s="Beijing"; D、char s[8]; s="Beijing"; 22、下述对C语言字符数组的描述中错误的是( C )。 A、字符数组可以存放字符串 B、字符数组中的字符串可以整体输入、输
8、出 C、可在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D、不可用关系运算符对字符数组中的字符串进行比较 23、凡在函数中未指定存储类别的变量,其隐含的存储类别为( A )。 A、auto B、extern C、register D、static 24、在函数调用语句中的____的个数、类型和次序应与函数定义的____相一致。( D ) A、值,变量 B、变量,值 C、形参,实参 D、实参,形参 25、若有定义int (*p)[3]和int (*f)(),则p和f分别表示( D )。 A、指针数组,函数指针 B、数组指针,指针函
9、数 C、指针数组,指针函数 D、数组指针,函数指针 26、在说明语句:int *f();中,标识符f代表的是( C )。 A、一个用于指向一维数组的指针变量 B、一个用于指向整型数据的指针变量 C、一个返回值为指针型的函数名 D、一个用于指向函数的指针变量 27、使用结构体struct的目的是( A )。 A、将一组相关的数据作为一个整体,以便程序使用 B、将一组相同数据类型的数据作为一个整体,以便程序使用 C、将一组数据作为一个整体,以便其中的成员共享同一存储空间 D、将一组数值一一列写出来,变量的值只限于列举的数值的范围内 28、设有说明语句
10、 typedef struct { int n; char ch[8]; }PER; 则下面叙述中正确的是( A )。 A、PER是结构体类型名 B、PER 是结构体变量名 C、struct 是结构体类型名 D、struct 是结构体变量名 29、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是( B )。 A、scanf(“%d”,a); B、scanf(“%d”,pa); C、scanf(“%d”,*pa); D、scanf(“%d”,&pa); 30、若要打开D盘上user文件夹下名为abc.txt
11、的文本文件进行读、写操作,符合此要求的函数调用是( C ) A、fopen("D:\\user\\abc.txt","r") B、fopen("D:\user\abc.txt","w") C、fopen("D:\\user\\abc.txt","r+") D、fopen("D:\user\abc.txt","rb") 31、下列语句中,能正确进行字符串赋值或赋初值的是( D )。 A、char a[5]={‘h’,‘e’,‘l’,‘l’,‘o’}; B、char s[5]=“hello”; C、char s[5]; s=“hell”; D、char *s
12、 s=“hello”; 32、下列语句中,能正确定义一维数组的是( B )。 A、 int N=10; int num[N]; B、# define N 10 int num[N]; C、int num[0..10]; D、int num[]; 33、下列语句中,不能正确定义二维数组的是( A )。 A、int a[2][]={{1,2},{3,4}}; B、int a[2][2]={{1}, 2,3}; C、int a[][2]={1,2,3,4}; D、int a[2][2]={{1},{2}}; 34、如有定义: in
13、t *p[3]; 则下列叙述中正确的是( C )。 A、定义了一个可指向一维数组的指针变量p, 所指一维数组应含有三个int类型元素 B、定义了一个名为*p的整型数组, 该数组含有三个int类型元素 C、定义了一个指针数组p, 该数组含有三个元素, 每个元素都是基类型为int的指针 D、定义了一个基类型为int的指针变量p, 该变量具有三个指针 35、有以下函数定义 : void fun(int n, double x) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( A )。 A、fun(x,n); B、void fu
14、n(n,x); C、fun(int y, double m); D、k=fun(10,12.5); 36、若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( D )。 A、函数调用可以出现在表达式中 B、函数调用可以作为独立的语句存在 C、函数调用可以作为一个函数的实参 D、函数调用可以作为一个函数的形参 37、若有下面的说明和定义 struct test { int ml; char m2; float m3; union uu {char ul[5]; int u2[2]; } ua; } myaa; 则sizeof(
15、struct test )的值是( B )。
A、9
B、12
C、14
D、16
38、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( B )。
A、-1
B、0
C、1
D、3
39、下列程序的输出结果为( C )。
#include
16、A )。
#include
17、 main( ) { int a[ ][3]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
18、 printf("%d", a[2][1]); } A、2 B、4 C、7 D、8 42、设有说明语句: int a=1,b=0; 则执行以下语句后, 输出结果为( D )。 switch(a) { case 1: switch(b)
19、 { case 0: printf("**0**"); break; case 1: printf("**1**"); break; }
20、 default: printf("**2**"); break; } A、**0** B、**2** C、 **0** **1** **2** D、**0** **2** 43、下列程序的输出结果为( B )。 main() { char ch1,ch2; ch1=’A’+’5’-‘3’; ch2=’A’+’5’-‘3’; printf(“%d,%c\n”,ch1,ch2); } A、67,67 B、67,C C、B, C D、C, C 44、下列
21、程序的输出结果为( D )。 main( ) { int x=10, y=10; printf("%d, %d", x++, ++y); } A、10, 10 B、11, 1
22、0 C、11, 11 D、10, 11 45、下列程序的输出结果为( A )。 #define SUM(x) x+x main( )
23、 { int a=10,k=3, m=2; a/=SUM(k*m)/SUM(m);
24、 printf("%d", a);
}
A、0
B、3
C、4
D、6
46、下列程序的输出结果为( X )。
#include
25、 main( ) { int i; for(i=100; i++)
26、 if (i%5==0) continue; printf("%d", i); break;
27、 } A、100 B、101 C、无限循环 D、无输出结果 47、下列程序的输出结果为( A )。 main() { int x=3, y=2, z=1; printf("%d\n, x / y & ~z); } A、0 B、1 C、2 D、3 48、下列程序的输出结果为( A )。
28、
#include
29、 int i, s=0; for(i=0; i<3; i++) s+=a[i] / b[i]; printf("%d", s); } A、0 B、
30、1 C、1.5 D、2 49、下列程序段的输出结果为( A )。 int a=4,b=3,c=2,d=1; printf(“%d”,(a
31、3, 4, 5, 6, 7}, *p=a; printf(“%d\n”, *(p+3) ); } A、1 B、2 C、3 D、4 52、下列程序的输出结果为( B )。 void sub(int x, int y, int *z) { *z=y-x; } main( ) { int a,b,c; sub(10, 5, &a); sub(7, a, &b); sub(a, b, &c); printf(“%d, %d, %d”, a, b, c); } A、5,2,3 B、-5,-12,-7 C、-5,-12,-17 D、
32、5, -2, -7
53、下列程序的输出结果为( C )。
main( )
{ int a[ ]={2, 4, 5, 7, 11, 12}, x, y=0, *p;
p=&a[1];
for(x=0; x<=3; x++) y+=*(p+x);
printf(“%d”, y); }
A、16
B、18
C、27
D、11
54、下列程序输入: 81635ac76201 显示结果为( B )
#include
33、3d%f%4s", &i, &x, s); printf("%d %6.3f %s\n", i, x, s); } A、816 35.000 ac B、816 35.000 ac76 C、816 35.0 ac D、816 35.0 ac76 55、下列程序的输出结果为( C )。 main( ) { union
34、 { long k; int i[6];
35、 char c[4]; }r; printf("%d", sizeof(r));
36、
}
A、4
B、6
C、12
D、20
56、下列程序的输出结果为( B )。
#include
37、 main( ) { void func( ); struct date { int a, b;
38、 char s[5]; }arg;
39、arg.a=27; arg.b=3; strcpy(arg.s, "abcd");
40、 func(arg.a, arg.b, arg.s); printf("arg.a=%d, arg.b=%d, arg.s=%s, arg.a, arg.b, arg.s);
41、 } void func(int x, int y, char *s1) { x-=5; y+=10;
42、 s1="ABCD"; } A、arg.a=22, arg.b=13, arg.s=ABCD B、arg.a=27, arg.b=3, arg.s=abcd C、arg.a=22, arg.b=13, arg.s=
43、abcd D、arg.a=27, arg.b=3, arg.s=ABCD 57、下列程序的运行结果为( B )。 main( ) { float y=0.0, a[ ]={2.0, 4.0, 6.0, 8.0,10.0}, *p;
44、 int i; p=&a[1]; for(i=0; i<3; i++) y+=*(p+i);
45、 printf("%f", y); } A、12.000000 B、18.000000 C、20.000000 D、24.000000 58、下列程序的运行结果为( B )。
46、
#include
47、 char *chp=&b[6]; while(chp>&b[0]) { putchar(*chp);
48、 --chp; } putchar(''); } A、GFEDCBA B、GFEDCB C、FEDCB D、FEDCBA 59、下列程序输出结果为( B )。
49、 f( ) { static c=3; return(c++);
50、 } main( ) { int i, k; for(i=0; i<2; i++) k=f( );






