1、36 1.执行以下程序的输出结果是__8921__。 main() { int n1,n2=1298; while(n2!=0) { n1=n2%10;n2=n2/10;printf("%d",n1);} } 2.以下程序的运行结果是__end____。 main() { int a,b,c;a=2;b=3;c=1; if(a>b) if(a>c)printf("%d\n",a); else printf("%d\n",b); printf("end\n");} 3.如果调用函数 fopen() 不成功,则函数的返回值为_
2、0_____。 4.以下程序段的执行结果是_ffff__。 int a=-1; printf("%x",a); 5.表示字符串s1等于字符串s2的逻辑表达式为_strcmp(s1,s2)==0_。 6.在C语言中,&作为双目运算符时表示的是按位与运算符,而作为单目运算符时表示的是__取地址__运算符。 7.C语言中的合法标识符只能有三种字符组成,它们是字母,_数字___和下划线。 8.C语言中从作用域的角度来看,变量可以分成__全局_变量和局部变量。 9.定义 struct{ int n; char
3、 y[5]; }tab[2]={{1,"ab"},{2,"cd"}}, *p=tab; 则表达式:printf("%s\n",p->y);的结果为__ab___。 10.以下程序段的执行结果是____6,8,6,7_______。 main() { int a1,a2,b1,b2; a1=5;a2=7; b1=++a1;b2=a2++; printf("%d,%d,%d,%d\n",a1,a2,b1,b2); } 3.语句for(i=-2;i<5;i++) 的循环体共执行__7___
4、次。 4.C语言提供专用于输入一个字符串(包括空格)的函数:___gets()______。 5.局部变量从存储类别可分为auto、register、__static__三种。 1.在TC 2.0中快捷键Ctrl+F9的功能是编译、连接和_运行______。 2.C语言函数库中字符串复制函数的函数名是strcpy___________。 3.有定义static char s[ ]="abc\tdef\n"; 则数组空间的字节数为___9_____。 4.写出a不能被b整除的C语言表达式是 __a%b!=0___________。 6.执行以下程序的输出结果是
5、4321______。 main() { int n1,n2=1234; while(n2!=0) { n1=n2%10;n2=n2/10;printf("%d",n1);} } 7.已知int x=10,y=20,z=30;则以下程序段的执行结果是__20,30,30_____。 if (x>y) z=x;x=y;y=z; printf("%d,%d,%d\n",x,y,z); 8.在C文件中,数据存放的两种形式是文本形式和二进制形式。 9.有函数调用语句 sub(a,1,fun(x,y),b+c,(m+n,c
6、h)); 则该函数调用语句中的实参个数为____5______。 1.以下程序运行结果是___6_________。 main() { int m=5; if(m++>5) printf("%d",++m); else printf("%d",m--);} 3.以下程序的运行结果是___20_________。 main() { int a,b,c,d,x; a=c=0;b=1;d=20; if(a) d=d-10; else if(!b) if(!c)x=15; else x=25
7、 printf("d=%d\n",d);} 4.在C语言中对文件读写之前应该用_fopen_____函数打开文件。 5.写出将字符串s1拷贝到字符串s2后,再连接到字符串s3之后的语句为 __strcat(s3,strcpy(s2,s1));________________。 6.在C程序的表达式中,判断表达式成立的条件是___1_____表示逻辑"真"值,0表示逻辑"假"值。 7.有定义 static char s[ ]="China"; 则数组所占空间为____6_________个字节。 8.C语言中的合法标识符只能有三种字符组成,它们是_字母____
8、数字和下划线。 9.表达式 a=(b=3)*(c=9)的值是 __27_____ 。 10.若定义了如下的结构体类型变量x,则x所占用的内存字节数为___11_____。 struct data1 { int i; char ch; double f; }x; 1.设i,j,k均为int型变量,则执行完以下for语句后,k的值是___10_____
9、 for(i=0,j=10;i<=j;i++,j--) k=i+j; 2.有定义 #define M(x) x*x/2 int a=2,b=3; 则 M(a+b)/M(a) 的值为__8_______。 4.以下函数的功能是:求两整数的差,并返回。 int sub ( int a,int b) { __return___ a-b; } 5.以下程序段的执行结果是___-4____。 main() { int a=2;a+=a-=a*a; p
10、rintf("a=%d\n",a); } 6.将变量a、b中的大数赋给变量c 的表达式为_c=a>b?a:b__________。 7.C语言用___分号_________表示每条语句的结束。 8.若有int a[3]={10,12,30};则*(a+2)=___30________。 9.union data1 { char name[6]; char sex; int age; }x;
11、 则:printf("%d ",sizeof(x))的结果是:__6_______。 10.若for循环是当型循环,则do--while 循环是___直到型循环_________ 。 2.以下函数中,若m=10,则函数共输出___4____行。 void sub(int m,int s[ ] ) { int n; for (n=1;n<=m;n++) { printf("%2d",s[n]); if (!(n%3)) printf("\n"); } } 3.在使用标准数学函数时,必须在程
12、序开头部分使用#include __
13、12______个元素。 9.有定义 long k=255793L; 若使输出结果是255793的语句为____printf(“%ld”,k);____________。 10.定义标识符PI为符号常量代表一个“3.14”这个字符串__#define PI 3.14____。 2.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char*)malloc(11); _______________________。 3.设char ch='a’;则ch对应的内存单元中存储的是常量'a'的__ASCII
14、码。 7.若int x=3,则表达式x+=x-=x*=5运算后,x的值为___0____。 8.C语言中,头文件的扩展名是_____.h__________。 9.C语言中用______’\0’__________表示字符串结束的标志。 10.int x[2][3],* p; p=&x[0][0]; 用 _*(p+4)_________ 表示 x[1][1]。 1.执行以下程序的输出结果是_______。 main() { int n1,n2=7654; while(n2!=0) { n1=n2%10;n2=n
15、2/10;printf("%d",n1);} } 3.定义标识符fp 为文件型指针变量的语句为 _FILE *fp;__________。 4.指针变量所代表存储单元是用来存放_变量的地址_________的。 5.以下程序段的执行结果是_fffe______。 int a=-2; printf("%x",a); 6.若有以下定义: double w[10]; 则w数组元素下标的上限为_9________。 7.在TC 2.0中Ctrl+F9的功能是编译、_连接______和运行。 8.在C程序中有三种逻辑运算符,它们是:!、
16、和____||_____。 9.设int i=3.56;则i对应的存储单元中存放的数值为__3_____。 10.跳过循环体中其后尚未执行的语句,而开始执行下一次是否循环的判定的语句是_____continue;________。 1.局部变量从存储类别可分为auto、register、_static__________三种。 2.有定义 #define M(x) x*x int a=3,b=2; 则 M(a+b)/M(a+b) 的值为_17______________。 3.enum{a,b=3,c,d=6,e} k;
17、 k=e;
k的值为___7_____ 。
5.在C语言中,16位微型机int型数据所占用的内存为___2___个字节。
6.表示 3
18、
4.若int x ;表示x为奇数的表达式 为 ____x%2==1_____________。
5.以下程序运行结果是___8___________。
main()
{
int m=6;
if(m++>5) printf("%d",++m);
else printf("%d",m--);}
6.若使用库函数sin(x),则必须使用______#include
19、函数关闭文件。
1、 局部变量的存储类型可以是_abd___。
A.auto B.static
C.extern D.register
E.void
2、 下列属于双目运算符的是_abd___。
A.+= B.>
C., D.>>
E.?:
3、 下列属于程序控制语句的是_bcde___。
A.int a; B.if(a>b)t=a;
C.for(i=0;i
20、ch(表达式)"语句说法正确的是abcd____。 A.switch语句是多分支语句 B.switch后的(表达式)允许是任何类型 C.switch语句中允许有一个default子句,也可以没有 D.switch语句中的每个case子句的常量表达式的值必须互不相同 E.switch语句中的每个case子句必须有一个break语句 5、 下列语句定义数组正确的是bd____。 A.int a(10); B.int a[2+9]; C.int arr[0 to 3][0 to 4]; D.int arr
21、[3][4]; E.int [3,4]; 6、 下列合法标识符是_cd___。 A.void B.define C.WORD D.a3_b3 E.case 7、 5.下列格式控制字符中能够输出整型数据的是abcd____。 A.%d B.%ld C.%lo D.%x E.%lf 8、 若有以下程序段,并且w和k都是整型变量: for(w=1;w<=k;w++) printf("*"); 则与上面程序段等价的循环语句是_abcd___。 A.for
22、w=k;w!=0;w--)
printf("*");
B.w=k;
while(w--!=0)
printf("*")
C.w=k;
do {
w--;
printf("*");
}while(w!=0);
D.for(w=k;w;--w)
printf("*");
E.w=k;
for(k=1;k 23、typedef
E.double
10、 下列正确的赋值语句是_ade___。
A.n=(i2,i++); B.j++;
C.++(i+1); D.x=j>0;
E.y=a>b?a:b;
11、 下列说法正确的是bcde____。
A.在C程序中,无论是整数还是实数,都能被准确地表示
B.在C程序中,声明变量时为变量开辟内存空间
C.静态变量的生存期与整个程序的运行期相同
D.C语言中变量必须先说明后引用
E.C语言中空语句是合法的
12、 C语言提供的逻辑运算符有_bde___。
24、 A.and B.||
C.or D.&&
E.!
13、 下列语句中能够判断整型变量a、b、c的值是否能够构成三角形的语句是bc____。
A.if(a+b>c && a-b 25、1;
if(i>100)break; }
B.for(;;)
C.int k=1000;
do
{ ++k;}while(k>=10000);
D.int s=36;
while(s);--s;
E.for(i=1;;i++);
15、 下列关于符号常量正确的是_ade___。
A.符号常量用标识符表示
B.符号常量不允许被修改
C.符号常量允许在程序运行中改变
D.#define N 10
E.符号常量没有值和类型的含义
16、 下列不合法的实型常量有 26、abd___。
A.5E2.0 B.E-3
C.2E0 D.1.3E
E.2E2
17、 把字符串"hello"赋给数组b的语句是_acde___。
A.char b[10]={'h','e','l','l','o'};
B.char b[10];b="hello";
C.char b[10];strcpy(b,"hello");
D.char b[]="hello";
E.char b[]={'h','e','l','l','o','\0'};
18、 可以不要进行函数原型声明 27、的函数是_bc___。
A.被调用函数的数据类型是int
B.被调用函数定义的位置在调用函数之前
C.主函数main()
D.被调用函数的数据类型是float
E.被调用函数的数据类型是char
19、 关于数组说法正确的是_abc___。
A.数组的下标从0开始
B.数组的各个元素在内存中是连续存放的
C.C编译系统对数组下标是否越界不做检查
D.C语言允许对整型数组名进行整体赋值
E.数组不允许进行初始化,只能在程序运行期间赋值
20、 下列语句正确初始化的是_ace___。 28、
A.char str[]="abcd";
B.char str[4]="abcd";
C.char str[4]={'a','b','c','d'};
D.char str[]={"a","b","c","d"};
E.char str[4]={97,98,99,100};
21、 下列不合法的字符常量是_bd___。
A.'\010' B."B"
C.'\X12' D.B
E.'B'
22、 整型变量X和Y的值相等,且为非0值,以下选项中,结果不为0的表达式是_abcd___。
29、 A.X||Y B.X|Y
C.X&Y D.!X==!Y
E.X^Y
23、 下列属于基本数据类型的是abce____。
A.int B.float
C.double D.struct
E.char
24、 关系表达式的结果可以是_bc___。
A.非0值 B.1
C.0 D.true
E.false
25、 设已定义char s[9]="xinjiang"和int i,则下面的输出函数调用中正确的是__abc__。
30、 A.printf("%s",s);
B.for(i=0;i<9;i++)printf("%c",s[i]);
C.puts(s);
D.for(i=0;i<9;i++)puts(c[i]);
E. for(i=0;i<9;i++)putchar(c[i]);
26、 下列整型常数表示正确的是_abce___。
A.123L B.123u
C.0x123 D.123uL
E.0123
27、 下列运算符中右结合的是acd____。
A.! B.+
C.++ 31、 D.?:
E.>=
28、 设有语句float ave(int a[10]);float f;int w[10];则正确的函数调用形式是_bd___。
A.f=ave(w[ ]); B.f=ave(w);
C.f=ave(w[10]); D.printf("%f",ave(w));
E.printf("%d",ave(w[10]));
29、 下列语句能够求出1+2+3+...+100的和的语句是_ae___。
A.for(i=1,sum=0;i<=100;sum+=i,i++);
B.i=1; 32、sum=0;while(i++<=100)sum+=i;
C.i=1;sum=0;if(i++<=100)sum+=i;
D.i=1;sum=0;do{sum+=i;}while(i<=100)
E.i=1;sum=0;for(;i<=100;i++)sum+=i;
30、 下列合法的转义字符常量是_abc___。
A.‘\n’ B.‘\r’
C.‘\t’ D.‘\x1a’
E.‘\101’
31、 逻辑运算符要求的运算量可以是_abcd___。
A.关系表达式 B.非零值
C.零值 33、D.数值表达式
E.逻辑量
32、 若有条件表达式"if(a10 && A<15
D.!(A<=10) && !(A>=15) 34、
E.A>10||A<15
34、 下列语句中能够输出正确的换行符的语句是abe____。
A.printf("\n"); B.putchar('\n');
C.scanf("%d\n"); D.getchar('\n');
E.printf("%c",'\n');
1.已知int a,b;下列switch语句中正确的是( b )。
A. switch(a)
{case a: a++;break;
35、 case b: b++;break;}
B. switch(a+b)
{case 1: a+b;break;
case 2: a-b;break;}
C. switch(a*a)
{case 1,2:++a;
case 3,4:--b;}
D. switch(a/0.5+b)
{case 5-a:a/5;break;
default:a+b;}
2.若有如下语句,则下面正确的描述是 ( b )。
char x[ ]="12345";
char 36、 y[ ]={'1','2','3','4','5'};
A. 数组x和数组y的长度相同
B. 数组x的长度大于y数组的长度
C. 数组x等价于数组y
D. 数组x的长度小于数组y的长度
3.scanf ( ) 函数的正确调用形式是( d )。
A.scanf(格式控制串,输出项表列);
B.scanf(格式控制串,输出项地址表列);
C.scanf(格式控制串,输入项表列);
D.scanf(格式控制串,输入项地址表列);
4.下列说法正确的是( c )。
A. C 语言的主函数 37、不允许有参数
B. C 语言的主函数最多允许 1 个参数
C. C 语言的主函数可以无参数
D. C 语言的主函数允许任意个参数
5.表达式 (!'1'||'1')+5 的值是( c )。
A. 不确定 B. 5 C. 6 D. 7
7.若有以下定义和语句, char s1[]="12345", s2[]="1234";则函数strcmp(s1,s2)的值为( a )。
A. 大于0 B. 小于 0 C. 等于0 D. 等于1
8.选出表达式结果为 38、假的一项( b )。
A. 1<4&&5>=4
B. (2>5==5)
C. (3<=3)&&(2<5)
D. !(4<=8)||(3<=7)
9.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( a )。
A. auto B. static C. extern D. register
10.下列表达式中,( a )是非法的。
已知float a=5;int b=4;
A. a%3+b B. b*b&&a||b C. (a>b)+(int)b%2 D. --b+a
11. 39、下列运算符中,优先级别最高的是( b )。
A. <= B. % C. || D. +
12.关于下列语句描述正确的是( b )。
union
{ unsigned int n;
unsigned char c; }u1;
A. u1是共用体类型名
B. u1是共用体变量名
C. u1是结构体类型名
D. u1占用内存空间3字节
13.设有int x,y;正确的输入语句是( c )。
A. scanf("%d%d",x,y);
B. scanf(" 40、x=%f,y=%f",&x,&y);
C. scanf("%d,%d",&x,&y);
D. scanf("x=%d,y=%d",x,y);
14.在一个C语言程序中( b )。
A. main函数必须出现在所有函数之前
B. main函数可以在任何地方出现
C. main函数必须出现在所有函数之后
D. main函数必须出现在固定位置
15.有关预处理命令#define N 10,以下描述正确的是( c )。
A. N在程序运行时可以被改变
B. N是个整型变量
C. N没有值 41、和类型的含义
D. N是个标识符,称为宏体
16.当调用函数时,实参是一个数组名,则向函数传送的是( b )。
A. 数组的长度
B. 数组的首地址
C. 数组每一个元素的地址
D. 数组每个元素中的值
17.有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
} 42、
}
执行后输出的结果是 ( a )。
A. 011122 B. 012
C. 012020 D. 120
18.以下程序的输出结果是( d )。
#define M(x,y,z) x*y+z
main()
{ int a=1,b=2, c=3;
printf("%d\n", M(a+b,b+c, c+a));
}
A. 19 B. 17
C. 15 D. 12
19.下列程序的输出结果是( d )。
main() 43、
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*p);
}
A. 非法 B. a[4]的地址
C. 5 D. 4
20.函数fun(float x)的函数类型是( a )。
A. int B. void
C. float D. 不确定
21.关于C程序说法正确的是( c )。
A. 一行只能写一条语句
B. 一个语句不可以分写在多行上
C. C语言本身没有 44、输入输出语句
D. 分号不是C语句的必要组成部分
22.关于语句FILE *fp;描述错误的是( c )。
A. fp是一个指向FILE类型的指针变量
B. 通过fp可以实现对与它相关文件的访问
C. fp指向与它相关文件的地址
D. 函数fclose(fp)可关闭fp指针指向的文件
23.假定x和y为double型,则表达式x=2,y=x+3/2的值是( d )。
A. 3.500000 B. 3
C. 2.000000 D. 3.000000
24.下列运算符结合方向是右结 45、合的是( d )。
A. + B. &&
C. >= D. ?:
25.以下语句中不正确的是( a )。
A. char s[10];s="test";
B. char s[]={'t','e','s','t'};
C. char s[20]="test";
D. char *s="test\n";
26.有以下程序段
int k=0;
while(k=1) k++;
while 循环执行的次数是( a )。
A.无限次 46、
B.有语法错,不能执行
C.一次也不执行
D.执行1次
27.关于else语句描述正确的是( c )。
A. 不可缺少
B. 必须与离之最近的if语句配对使用
C. 不可以单独使用
D. 必须使用缩进格式表示
28.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为( c )。
A. 0 B. 1
C. 2 47、 D. 3
29.合法的赋值语句是( b )。
A. x=y=100
B. d--;
C. x+y;
D. c=int(a+b);
30.以下程序段的输出结果是( c )。
int x=3;
do
{ printf("%3d",x-=2);
}while(!(--x));
A. 1 B. 3 0
C. 1 -2 D. 死循环
31.只有当整数x为奇数时,表达式为逻辑“真”的是( b )。
A. x%2==0
B. !(x%2== 48、0)
C. (x-x/2*2)==0
D. !(x%2)
31.下列程序段的输出结果是( a )。
for(a=1;a<=10;a++)
if(a%3==1)break;
printf("%d\n",a);
A. 1 B. 2
C. 3 D. 4
32.以下叙述中正确的是( b )。
A. 全局变量的作用域一定比局部变量的作用域范围大
B. 静态(static)类别变量的生存期贯穿于整个程序的运行期间
C. 函数的形参都属于全局变量
D. 未在定义语 49、句中赋初值的auto变量和static变量的初值都是随机值
33.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5)); ,该函数调用语句中,含有的实参个数是( a )。
A. 3 B. 4
C. 5 D. 有语法错误
34.与y=(x!=0?1:-1);功能相同的if语句是( b )。
A.if(x<>0) y=1;
else y=-1;
B.if(x) y=1;
else y=-1;
C.if(x) y=-1;
else y=1;
D.i 50、f(x>=0) y=1;
35.以下能正确定义数组并正确赋初值的语句是( d )。
A. int N=5,b[N][N];
B. int a[0][2]={{1},{3}};
C. int c[2][]={{1,2},{3,4}};
D. int d[3][2]={{1,2},{3,4}};
36.下列选项中合法的字符常量是 ( b )
A. "&" B. 'R'
C. "ABC" D. "\n"
37.若有如下定义:
int a[10];
则下面不能正确表示 a[1]地址的






