资源描述
一、选择题
1、以下叙述正确得就是( ):
A) 在C程序中,main函数必须位于程序得最前面
B) C程序得每行只能写一条语句
C) C语言使用库函数实现输入输出操作
D) 注释中得拼写错误会影响编译结果
2、以下说法中正确得就是()
A) C语言程序总就是从第一个得函数开始执行
B) C语言程序总就是从main()函数开始执行
C)在C语言程序中,要调用得函数必须在main()函数中定义
D) C语言程序中得main()函数必须放在程序得开始部分
3、下列选项种说法正确得就是( )
A) 函数由声明部分与执行部分两部分组成
B)语言中main函数一定在程序得开始部分
C)C语言程序总就是从第一个定义得函数开始执行
D)C程序得每行中只能写一条语句
4、设有说明:int a; float b; char c; double d; 则表达式1、3*a+2*b*c+d*(int)2、6 值得类型为( )。
A) double B) char C) float D) int
5、 C语言得标识符只能由字母、数字与下划线三种字符组成,且第一个字符( )
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以就是字母、数字与下划线中任一种字符
6、以下不正确得C语言标识符就是( )。
A) ABC B) abc C) a_bc D) void
7、下列运算符中优先级最高得就是( )
A) 〈 B)+ C)&& D)!=
8、以下选项中属于C语言中合法关键字得就是( )
A)Float B)abc C)int D)CASE
9、 若x、i、j与k都就是int型变量,计算下面表达式后,x得值为( )
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
10、在C语言中,要求数据必须就是整型得运算符就是( )
A)/ B)+ + C)!= D) %
11、若整型变量x得值为8,则下列表达式中值为1得表达式就是
A)x+=x-=x B) x%=x-1 C) x%=x%=3 D) x/=x+x
12、若w=1,x=2,y=3,z=4,则条件表达式“w 〉 x ? w : y < z ? y : z”得值就是( )
A)4 B)3 C)2 D)1
13、有以下程序,程序运行后得输出结果就是。
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 3
14、下面程序得输出结果就是
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y〈0)z=0;
else z=-1+x;
printf(“%d\n”z);
}
A) 3 B) 2 C) 1 D)0
15、执行下列语句后,a得值为( )
main( )
{int a=5;
printf(“%d\n”,(a=3*5,a*4,a+5));
}
A) 65 B)20 C) 15 D)10
16、下列程序段中,有错误得行就是()
列定行号 int x=0,y=10;
2 switch(x)
3 {case 3:
4 case –1:y=y-2;break;
5 case y+1:x+=5;
6 default:printf(“%d,%d”,x,y);}
A) 4 B) 3 C) 5 D)无错误
17、若i为整型变量,则以下循环执行次数就是( ).
#include”stdio、h"
void main()
{ int i;
ﻩfor(i=2;i==0; )
printf("%d",i-—);
}
A) 无限次 B)0次 C) 1次 D) 2 次
18、若有以下定义,double a[10];则a数组元素下标得上、下限分别为( )
A) 1,10 B) 0,9 C) 0,10 D)1,9
19、若已定义得函数有返回值,则以关于该函数调用得叙述中错误得就是()
A) 调用可以作为独立得语句存在 B) 调用可以作为一个函数得实参
C) 调用可以出现在表达式中 D) 调用可以作为一个函数得形参
20、 定义如下变量与数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句
for(i=0;i〈3;i++) printf("%d",x[i][2-i]);
输出结果就是 ( )
A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9
21、以下不能正确定义二维数组得选项就是
A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};
C) int a[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}};
22、若有以下定义:int a[5]={10,20,30,40,50},*p=a;则执行++(*p)后(*p)++得值就是
A) 10 B) 11 C) 20 D)21
23、函数得嵌套调用就是指
A) 直接调用本函数
B) 在定义函数时,又定义另一个函数
C) 间接调用本函数
D) 被调用函数又调用另一个函数
24、下列说法正确得就是
A) 被调用函数必须先调用,后声明
B) 用户自定义函数得类型若未指出,则系统默认为void
C) 全局变量不能与局部变量同名
D) 实参可以就是任意表达式
25、以下描述正确得就是( )
A)continue语句得作用,就是结束整个循环语句得执行
B)只能在循环体内与switch语句体内使用break语句
C)在循环体内使用break语句或continue语句得作用相同
D)多层循环嵌套中不可以使用break语句
26、若有说明语句:“int a[3][4];”,则对数组元素得正确引用格式就是( )
A)a[2][4] B) a[1,3] C) a[1+1][0] D) a(2)(1)
27、若有说明:“int a[3][4]={0};",则下面正确得叙述就是( )
A)只有元素a[0][0]可得到初值0
B)此数组说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值0
28、定义数组a与b得语句就是:
“char a[ ]=“ABCDEF”; char b[ ]={‘A’,‘B',‘C’,‘D’,‘E’,‘F'};”
则以下叙述正确得就是( )
A)a与b数组完全相同 B)a与b数组元素个数相同
C)a与b中都存放字符串 D)a数组比b数组元素个数多
29、语句“int (*ptr) ( );"得含义就是( )
A)ptr就是指向一维数组得指针变量
B)ptr就是指向int型数据得指针变量
C)ptr就是指向函数得指针,该函数返回一个int型数据
D)ptr就是一个函数名,该函数返回值就是指向int型数据得指针
30、若有定义:“int *p[4];",则标识符p 就是( )
A)一个指向整型变量得指针
B)一个指针数组名
C)一个指针,它指向一个含有四个整型元素得一维数组
D)无效得数组名
31、在C语言中( )
A) 函数定义可以嵌套,但函数调用不可以嵌套
B) 函数定义不可以嵌套,但函数调用可以嵌套
C) 函数定义与调用都可以嵌套
D) 函数定义与条用都不能嵌套
32、下面程序得输出结果就是( )
#include <stdio、h〉
void main()
{ int i,j,x=0;
for(i=0;i〈=2;i++)
{ x++;
for(j=0;j〈=2;j++)
{ if(j%2)continue;
x ++;}
x ++;
}
printf(”%d\n",x); }
A)4 B)6 C)8 D)12
33、执行下列语句后,m得值为( )
int m=1,x=2,y=3,z=4;
m=m〈x?m:x;
m=m<y?m:y;
m=m<z?m:z:
A) 1 B) 4 C) 2 D) 3
34、下列程序段就是实现给数组所有元素赋值操作,应在下划线上填入得就是( )
int a[10];
for(i=0;i〈=9;i++) scanf(“%d”, );
A) a B) &a[i] C) a[i] D) &a[0]
35、下列叙述正确得就是()
A) do-while语句构成得循环不能用其它语句构成得循环来代替
B) do-while语句构成得循环只能用break语句退出
C) 用do-while语句构成得循环,在while后得表达式为非零时结束循环
D) 用do—while语句构成得循环,在while后得表达式为零时结束循环
36、下列程序得输出结果为()
#include “stdio、h”
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(“%d, %d”, a, b);
}
A) 8,20 B) 8,22 C) 7,20 D) 7,22
37、设 int a[5]={10,15,20,25,30};
int *p; p=a+2;则表达式++*p得值为()
A) 20 B) 15 C) 16 D) 21
38、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b得值分别为( )
(a=w〉x)&&(b=y〉z);
A) 0与0 B) 5与0 C) 0与6 D) 5与6
39、下列语句得输出为( )
int x=—1;
printf(“%d,%u,%o”,x,x,x);
A) –1,—1,—1 B) –1,32767,-177777
C) –1,32768,177777 D) –1,65535,177777
40、下列函数调用语句中得实参个数为( )
fun((a+b,x,y),fun(x,(x+z)));
A) 2 B) 3 C) 4 D) 5
41、设有数组定义:char array[ ]=”china”;则数组array所占得内存空间为( )
A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节
42、以下程序段得运行结果就是( )。
char c[5]={ ‘a’ , ’b’ , ‘\0‘ , ‘c’ , ‘\0’ } ;
printf( “%s” , c );
A)'a''b’ B)ab C)ab c D)a b
43、若C程序中出现死循则违背了算法得( )
A)有效性 B)确定性
C)有穷性 D)有一个或多个输出
44、设 int a=20;则执行表达式:a/=a+a后,a得值就是( )
A)0 B)1 C)20 D)40
45、int x,y,z,m=5,n=5;则执行下面语句后得z值就是( )
x=(——m==n++)?-—m:++n;
y=m++;
z=n;
A)5 B)10 C)6 D)7
46、执行下列程序段后,i得正确结果就是( )
int i=10;
switch(i)
{ case 9: i+=1;
case 10: i++;
case 11: ++i;
default:i+=i; }
printf( ”%d", i );
A)10 B)11 C)12 D)24
47、若有定义:int a[10];。则以下表达式中不能代表数组元素a[1]得地址得就是( )
A)&a[0]++ B)&a[1] C)&a[0]+1 D)a+1
48、变量得指针,其含义就是指该变量得( )
A)值 B)地址 C)变量名 D)一个标志
49、有以下函数定义:
void fun(int n, double x)
{ …… }
若以下选项中得变量都已正确定义并赋值,则对函数fun得正确调用语句就是( )
A)fun(int y,double m); B)k=fun(10,12、5);
C)fun(x,n); D)void fun(n,x);
50、设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n得值就是( )。
A) 0 B) 1 C) 2 D) 3
51、若int a, b; scanf(”%d%d”, &a, &b); 不可以用( )作为输入得分隔符.
A) , B)空格 C)回车 D)TAB键
52、下面关于运算符优先顺序得描述中正确得就是: ( )
A)关系运算符〈 算术运算符〈 赋值运算符< 逻辑与运算符
B)逻辑 运算符< 关系运算符〈 算术运算符< 赋值运算符
C)赋值运算符< 逻辑与运算符〈 关系运算符< 算术运算符
D)算术运算符< 关系运算符< 赋值运算符〈 逻辑与运算符
53、为了判断两个字符串s1与s2就是否相等,应当使用( )。
A) if(s1 == s2) B) if(s1 = s2)
C) if(strcpy(s1,s2)) D)if(strcmp(s1,s2)==0)
54、以下对二维数组进行正确初始化得就是( )。
A)int a[2][3]={{1,2},{3,4},{5,6}};
B)int a[][3]={1,2,3,4,5,6};
C)int a[2][]={1,2,3,4,5,6};
D)int a[2][]={{1,2},{3,4}};
55、 若用数组名作为函数调用时得实参,则实际上传递给形参得就是( )。
A)数组得首地址 ﻩ B) 数组得第一个元素值
C)数组中全部元素得值 D) 数组元素得个数
56、 以下错误得描述就是( )。 ﻩ ﻩﻩ
A) 不同得函数中可以使用相同得变量名
B) 形式参数就是局部变量
C) 一个函数内部定义得变量只能在本函数范围内有效
D) 在一个函数内部得复合语句中定义得变量可以在本函数范围内有效
57、下列程序得运行结果就是( )
main( )
{ int i=10;
int *p=&i;
i=8;
printf(“%d”,*p);
}
A)10 B)8 C)程序错误,不能运行 D)结果不确定
58、C语言中,double类型得数据占字节数为( )
A) 1 B) 2 C) 4 D) 8
59、可在C程序中用作用户标识符得一组标识符就是( )
A)as_b3 _123 If
B) For -abc case
C) 2c DO SIG
D) void define WORD
60、以下字符中,不正确得C语言转义字符就是( )
A) ‘\\’ B) ‘\018' C) ‘\Xaa’ D) ‘\t’
61、C语言中,数据在内存中都以( )形式存放
A) 原码 B) 反码 C) ASCll码 D)补码
62、下列运算符中,优先级最高得就是( )
A) && B) ! C) ++ D) ||
63、有输入语句:scanf (“a=%d ,b=%d ,c=%d” ,&a,&b,&c) ;为使变量a 得值为11,b 为12,c为13,则从键盘输入数据得正确形式应当就是( )。
A)11 12 13 B)11, 12, 13
C)a=11 b=12 c=13 D) a=11, b=12, c=13
64、为表示关系 —1≤x≤1应使用得c语言表达式就是( )
A) -1≤x≤1 B) —1=<x&&x=<1
C) -1=<x=<1 D) x〉=-1&&x〈=1
65、若有以下定义:
double a; int b;
float c; char d;
则表达式a*b/d+(d—c)值得类型为( )
A) float B) int C) char D) double
66、下列程序输出得结果就是( )
main()
{int a=18;
a+=a—=a*a;
printf("%d”,a);
}
A) —612 B) 9 C) 0 D) 36
67、break语句( )
A) 只能出现在if语句中 B) 只能出现在循环体中
C) 可用在循环体与switch语句中 D) 可用在函数中得任何语句
68、如 int k=11;则执行语句k=1/3*++k;后k取值为( )
A) 12 B) 3C) 4 D) 0
69、以下程序得输出结果就是( )
main()
{ int x=12,y=012;
printf(”%d %d\n”,x--,—-y);
}
A)12 9 B)11 11 C)11 12 D)12 11
70、 设 int x=1, y=5; 表达式(!x||y—-||++x)得值就是( )
A) 0 B) 1 C) 5 D) 4
71、如果k为整数,则while循环执行次数()
k=10;
while(0) k=k-1;
A) 一次都不执行 B) 1 C) 10 D) 无限次
72、 有以下程序( )
fun(int a, int b)
{ if(a〉b) return b;
else return b;
}
main( )
{ int x=3, y=8, z=6, r;
r=fun (x, y+z);
printf("%d\n”, r);
程序运行后得输出结果就是( )
A) 3 B) 6 C) 8 D) 14
73、若有说明:int n=17,*p=&n,*q=p;,则以下非法得赋值语句就是( )
A) p=q; B) *p=*q; C) n=*q; D) p=n;
74、 以下程序得功能就是:按顺序读入10名学生4门课程得成绩,计算出每位学生得平均分并输出,程序如下:
main()
{ int n,k;
float score ,sum,ave;
sum=0、0;
for(n=1;n<=10;n++)
{ for(k=1;k〈=4;k++)
{ scanf(“%f”,&score); sum+=score;}
ave=sum/4、0;
printf(“NO%d:%f\n”,n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中得位置不正确.这条语句就是( )
A) sum=0、0; B) sum+=score;
C) ave=sun/4、0; D) printf(“NO%d:%f\n”,n,ave);
75、数组定义为char a[10]={‘a’,‘b’,‘c’};该数组包括得元素个数就是( )
A) 3 B) 9 C) 4 D)10
76、下面程序得输出结果就是( )
main ( )
{ int x = 2, y = —1,z = 2;
if ( x 〈 y )
if ( y < 0 ) z = 0;
else z = -1+x++;
printf ("%d\n", z++ );}
A) 3 B) 2 C) 1 D) 0
77、有以下程序
main( )
{ int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p ;
for(p=&a[9];p>=a;p-—)
printf(”%d,”,*p);
}
程序运行后得输出结果就是( )
A)0 1 2 3 4 5 6 7 8 9
B)2,3,4,5,6,7,8,9,10,1
C)0,1,2,3,4,5,6,7,8, 9,
D)9,8,7,6,5,4,3,2,1, 0,
78、 执行循环语句: for(x=y=0;y!=250||x<4;x++)y+=50;
其循环体执行得次数为( )
A) 5 B) 4 C)3 D)2
79、如 int x=14; 下列求商y(需小数结果)得表达式哪一个不对( )
A) y=x/(5+、0) B) y=x/5、 C) y=1、*x/5 D) y=x/5*1、0
80、设有以下程序段( )
int x=0,s=0;
while(!x!=0)s+=++x;
printf(”%d",s);
则 :A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中得控制表达式就是非法 D)程序无法运行
81、有以下程序,程序运行后得输出结果就是( )
#include"stdio、h"
void main()
{ int i=0,j=2,m=3,n;
n=i++<=1&&j〉=2&&m++;
printf("%d,%d,%d,%d \n",i,j,m,n);
}
A)2,2,4,1 B)2,2,3,1 C) 1,2,4,1 D)2,1,3,1
82、下面程序得输出结果就是( )
#include <stdio、h>
void main()
{ int i,x=1,y=0,a=0,b=0;
switch(x)
ﻩ { case 1:b++;
case 2:a++;b++;break;
case 3:a++;b++;
}
printf("%d,%d\n”,a,b);
}
A)2,1 B)2,2 C)1,2 D)4,2
二、程序分析及填空
1、C语言得基本数据类型中,有两种实数类型变量,一种就是float型,另一种就是( )型。
2、若程序中有语句“scanf(“a=%d,b=%d",&a,&b);”,在执行程序时,要输入3与5两个数,应该键入( )。
3、包含数学类库函数得头文件名称就是( )。
4、字符串“ab\034\\\x79”得长度为( )。
5.数组元素作函数参数进行得就是 传递,数组名作函数参数进行得就是____传递.
6.设有函数调用语句f(x1,x1+x2,f1(x1,x2));则函数f()实参得数目有____个.
7.在数组 int score[10]={1,2,3,4,5,6}中,元素定义得个数有 个,其中score[8]得值为 .
8、C语言源程序文件得后缀就是 经过编译后,生成文件得后缀就是 ,经过连接后,生成文件得后缀就是 。
结构化程序由 、 、 三种基本结构组成。
9、C语言提供得三中逻辑运算符就是____________ 、____________、____________。
10、若a=1,b=4,c=3, 则表达式!(a<b)||!c&&1得值就是_______________ 。
11、在C语言中,若对函数类型未加说明,则函数得隐含类型为 类型.
12、在C语言中,唯一得一个三目运算符就是 。
13、以下程序运行后得输出结果就是____________。
#include <stdio、h>
void main( )
{ int m=5;
if (m++>5)printf(”%d\n”,m);
else printf(”%d\n”,m-—);}
14、以下程序运行后得输出结果就是 。
#include 〈stdio、h>
void main()
{ int x=15;
while(x>10 && x〈50)
{ x++;
if(x/3){x++;break;}
else continue;
}
printf(”%d\n",x);}
15、下面程序得运行结果就是: 。
#include ”stdio、h”
void s *a,int *b)
{ int *t;
t=a; a=b; b=t;
}
void main()
{ int x=3,y=5,*p=&x,*q=&y;
s);
printf("%d%d\n",*p,*q);
}
16、在执行以下程序时,如果从键盘上输入:AdEf<回车>,则输出为 ____________
#include"stdio、h”
void main()
{char ch;
while ((ch=getchar())!='\n’)
{if (ch>=’A’&&ch<=’Z')ch=ch+32;
else if (ch>='a'&&ch〈=’z')ch=ch-32;
printf(”%c",ch);
}
printf(”\n");}
17.设有以下宏定义,则执行赋值语句 a=PP*20;(a为int型变量)后,a得值就是 .
#define PR 100
#define PP PR+400
18、下列程序段得输出结果为
int x=10,y=1;
y=y—-||x++;
printf(“%d,%d”,(y,x++),y);
19、有以下程序
#include "stdio、h”
void main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i〈4;i++)
s+=a[i][i];
printf(”%d\n",s);
}
程序运行后得输出结果就是
程序得功能为
20、有以下程序
#include <stdio、h>
void main( )
{ int p=2, t=1;
while(p<=5 )
t=t*p++;
printf(”%d\n",t);}
该程序运行后变量p与t中得值分别为 。
21、有以下程序
#include 〈stdio、h〉
void main()
{ int a,b,c=221;
a=c/100%3;
b=a&&—1;
printf(“%d,%d",a++,b--); }
该程序运行后得输出结果就是
22、以下程序得输出结果为 .
#include 〈stdio、〉
main()
{ int a[ ]={1,2,3,4,5,6},*p=a;
*(p+3)+=2;
printf(“%d,%d",*p,*(p+3)); }
23、以下程序得输出结果为 。
#include "stdio、h"
int x1=40,x2=70;
void main( )
{ int x3=50,x4=60;
int sub(int x3,int x4);
printf("%d,%d\n",x1,x2);
}
void sub(int x,int y)
{ x1=x; x2=y;}
24、下面C程序得输出就是:
main()
{ int m=6;
if(m—-<6) printf(”%d\n",++m);
else printf("%d\n”,——m);
}
25、下面C程序得输出就是:
#include ”stdio、h"
main()
{ int a=5,*p=&a;
*p=a+*p;
ﻩprintf ("a=%d\n",a);}
26、下面C程序得输出就是:
#include "stdio、h”
void f(int n)ﻩ
{ printf("%3d",n%10);
if(n〉0)
f(n/10); }
void main()
{ f(12);}
27、以下程序得输出结果就是:
#include ”stdio、h"
void main()
{ int y;
for(y=6; y>0; y-—)
if(y%3==0)
{ printf(”%d", --y); continue;} }
28、在数组 int score[10]={1,2,3,6}中,score[7]得值为_______。
29、程序运行后得输出结果就是
#include "stdio、h"
void main()
{ int a=1,b=2;
printf(”%d",(a++,++b,(a++)+b));}
30、以下程序运行后得输出结果就是
#include 〈stdio、h〉
void main()
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%d”,x[i][2-i]); }
31、 以下程序运行后得输出结果就是
#include <stdio、h〉
main()
{ int a=5,b=7,c;
printf(“%d\n”,c=a>b);
}
32、 以下程序运行后得输出结果就是
#include ”stdio、h”
main( )
{ int i,j,k=0,m=0;
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
k++; k—=j;
ﻩ}
m=i+j;
printf(”k=%d,m=%d\n",k,m);
}
33、 以下程序运行后得输出结果就是
#include "stdio、h"
s *p1, int *p2)
{ int p;
p=*p1; *p1=*p2; *p2=p;
}
main()
{ int a=12,b=13;
int *pointer_1,*pointer_2;
pointer_1=&a; pointer_2=&b;
if(a<b)s);
printf(”\n%d,%d\n”,a,b);
}
34
展开阅读全文