资源描述
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() 不成功,则函数的返回值为__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 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.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.执行以下程序的输出结果是_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*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;
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语言中的合法标识符只能有三种字符组成,它们是_字母_____、数字和下划线。
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_______。
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;
printf("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;
则: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.在使用标准数学函数时,必须在程序开头部分使用#include __<math.h>_________命令。
4.strcmp(s1,s2 ) 函数需要两个参数s1、s2,它们的类型可以是字符串或字符型指针。
5.计算表达式 a=20/2%3 后,a 的值为__1______。
6.设有类型说明如下:
int a[10]={1,2,3,4,5,6},*p=a;
则 *(p+3)=______4___。
7.构成C语言程序的基本单位是____函数____________。
8.有定义 int a[][4]={{10,12},{1,30,3},{2}};则数组a中有____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______码。
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=n2/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程序中有三种逻辑运算符,它们是:!、&&和____||_____。
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;
k=e;
k的值为___7_____ 。
5.在C语言中,16位微型机int型数据所占用的内存为___2___个字节。
6.表示 3<x<6 或 x<0 的C 语言表达式为__x>3&&x<6||x<0__________。
1.设有类型说明如下:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
若数组所占内存单元的起始地址为2000,则 p+5=_2010_______。
2.C语言程序的注释是以___\*_________开头的。
3.将十进制整数123,化为二进制数为___1111011______________。
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 <math.h>____________预处理命令。
7.在C语言中对文件读写使用结束之后应该用__fclose______函数关闭文件。
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<n;i++); D.while(x>0)x--;
E.return n;
4、 下列关于"switch(表达式)"语句说法正确的是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[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(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<w;k++)
printf("*");
9、 函数的类型可以是abce____。
A.int B.void
C.int * D.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___。
A.and B.||
C.or D.&&
E.!
13、 下列语句中能够判断整型变量a、b、c的值是否能够构成三角形的语句是bc____。
A.if(a+b>c && a-b<c)
B.if(a+b>c && a+c>b && b+c>a)
C.if(a-b<c && a-c<b && b-c<a)
D.if(a-b<c)
E.if(a+b>c)
14、 在下列选项中,构成死循环的程序段是_abde___。
A.int i=100;
while(1)
{ i=i%100+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、 下列不合法的实型常量有_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、 可以不要进行函数原型声明的函数是_bc___。
A.被调用函数的数据类型是int
B.被调用函数定义的位置在调用函数之前
C.主函数main()
D.被调用函数的数据类型是float
E.被调用函数的数据类型是char
19、 关于数组说法正确的是_abc___。
A.数组的下标从0开始
B.数组的各个元素在内存中是连续存放的
C.C编译系统对数组下标是否越界不做检查
D.C语言允许对整型数组名进行整体赋值
E.数组不允许进行初始化,只能在程序运行期间赋值
20、 下列语句正确初始化的是_ace___。
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___。
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__。
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.++ 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;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.零值 D.数值表达式
E.逻辑量
32、 若有条件表达式"if(a<b)a++;else b++;",则以下表达式能正确表示表达式(a<b)的是_ce___。
A.(a<b==0) B.(a<b=0)
C.(a<b==1) D.(a<b!=1)
E.(a<b!=0)
33、 设A是整型变量,正确表达数学关系10<A<15的C语言表达式是bcd____。
A.10<A<15
B.A==11||A==12||A==13||A=14
C.A>10 && A<15
D.!(A<=10) && !(A>=15)
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;
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 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 语言的主函数不允许有参数
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.选出表达式结果为假的一项( 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.下列运算符中,优先级别最高的是( 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("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没有值和类型的含义
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);
}
}
执行后输出的结果是 ( 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()
{ 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语言本身没有输入输出语句
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.下列运算符结合方向是右结合的是( 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.无限次
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 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==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. 未在定义语句中赋初值的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.if(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]地址的
展开阅读全文