你的答案是:
正确答案是:
A
5<="">
x>5&&x<10
x==6||x==7||x==8||x==9
!
(x<=5)&&(x<10)
3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为_____。
你的答案是:
正确答案是:
D
&&、||、!
||、&&、!
&&、!
、||
!
、&&、||
4、下面语句中,正确的是_____。
你的答案是:
正确答案是:
D
printf("%c\n","student");
printf("%c\n","c");
printf("%s\n",&a);
printf("%s\n","hello");
5、对于for(表达式1;;表达式3)可以理解为_____。
你的答案是:
正确答案是:
B
for(表达式1;0;表达式3)
for(表达式1;1;表达式3)
for(表达式1;表达式1;表达式3)
for(表达式1;表达式3;表达式3)
6、执行下面程序段的结果是_____。
main(){intx=1,a=0,b=0;switch(x){case0:
b++;case1:
a++;case2:
a++;b++;}printf("a=%d,b=%d",a,b);}你的答案是:
正确答案是:
B
a=1,b=1
a=2,b=1
a=1,b=0
a=2,b=2
7、执行下面程序段的结果是_____。
intx=0;do{printf(“%2d”,x--);}while(x);你的答案是:
正确答案是:
D
打印出321
打印出23
不打印任何结果
陷入死循环
8、设x=10,y=5;z=15,执行下面一段程序后z的结果是_____。
If(x>y)if(y>z)x=y;elsez=y;你的答案是:
正确答案是:
C
7
6
5
4
9、如果一个函数被说明为static,那么_____。
你的答案是:
正确答案是:
B
该函数只能被main函数调用
该函数能被当前文件的函数调用,但不能被其他文件的函数调用
该函数不能被当前文件的函数调用,可以被其他文件的函数调用
任何文件的函数都可以调用该函数
10、下面关于局部变量的描述中,错误的是_____。
你的答案是:
正确答案是:
D
函数的局部变量的有效范围只能在本函数
函数的形式参数也是局部变量
局部变量的名称不能和函数同名称
不同的函数中不能定义相同名称的局部变量
11、下列初始化字符数组的语句中,错误的是_____。
你的答案是:
正确答案是:
A
charstr[5]="hello";
charstr[]={'h','e','l','l','o','\0'};
charstr[5]={"hi"};
charstr[100]="";
12、引用数组元素时,数组下标可以是_____。
你的答案是:
正确答案是:
D
整型常量
整型变量
整型表达式
以上均可
13、已知:
charstr[10],*p=str;下面的语句中正确的是_____。
你的答案是:
正确答案是:
B
str="ABC";
p="ABC";
*str="ABC";
*p="ABC";
14、下面语句中,错误的是_____。
你的答案是:
正确答案是:
D
inti;int*p;p=&i;
inti,*p;p=&a;
inti,*p=&a;
inti,*p;*p=i;
15、下面对于结构体类型的描述正确的是_____。
你的答案是:
正确答案是:
A
结构体类型的大小为各成员变量所占内存的总和
结构体类型变量及简单数据类型变量的引用规则一致。
结构体类型的大小为其成员中所占内存空间最大的变量的大小
结构体类型的大小为其最后一个成员中所占内存空间的大小
16、C语言规定:
在一个源程序中,main函数的位置________。
你的答案是:
正确答案是:
C
必须在最开始
必须在系统调用的库函数的后面
可以任意
必须在最后
17、表达式18/4*sqrt(4.0)/8值的数据类型是________。
你的答案是:
正确答案是:
C
int
float
double
不确定
18、在c语言中,char型数据在内存中的存储形式是________。
你的答案是:
正确答案是:
D
补码
反码
原码
ASCII码
19、阅读以下程序,当输入的数据形式为:
25,13,10时,正确的输出结果为______。
main(){intx,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z);}你的答案是:
正确答案是:
D
x+y+z=48
x+y+z=35
x+z=35
不能确定
20、有如下程序voidmain(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf(“%f\n”,y);}该程序的输出结果是()。
你的答案是:
正确答案是:
C
0.000000
0.250000
0.500000
1.000000
21、判断char型变量s是否为小写字母的正确表达式是______。
你的答案是:
正确答案是:
C
'a'<=s<='z'
(s>='a')&(s<='z')
(s>='a')&&(s<='z')
('a'<=s)and('z'>=s)
22、执行以下语句后,y的值为______。
intx,y,z;x=y=z=0;++x||++y&&++z;你的答案是:
正确答案是:
A
0
1
2
不确定值
23、有如下程序段:
intnumber=0;while(number++<=3)printf(“%d\n”,number++);则正确的执行结果是______。
你的答案是:
正确答案是:
C
234
012
13
24
24、有如下程序voidmain(){intn=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是______。
你的答案是:
正确答案是:
B
987
876
8765
9876
25、要使以下程序段输出10个整数,请在空格中填入一个整数。
for(i=0;i<=______;printf("%d\n",i+=2));你的答案是:
正确答案是:
B
15
18
20
10
26、设函数fun的定义形式为:
fun(charch,floatx){…}则以下对函数fun的调用语句中正确的是______。
你的答案是:
正确答案是:
B
fun(“abc”,3)
t=fun(‘D’,5)
fun(‘ab’,3)
fun(‘78’,1)
27、函数求sum(intn)的功能是计算自然数1到n的和,即1+2+…+n。
Main(){printf("Thesum=%d\n",sum(10));}intsum(intn){ints=0,i;for(i=0;i<=n;i++)____________}请从备选答案中选择一答案,补全程序。
你的答案是:
正确答案是:
B
s=s+n;returns;
s=s+i;returns;
returns;
returns+=I;
28、设函数fun的定义形式为intfun(inta[],intn){ints=0,i=0;for(i=0;i你的答案是:
正确答案是:
C
3
5
7
9
29、若有说明:
inta[10];则对数组元素的正确引用是________。
你的答案是:
正确答案是:
D
a[10]
a[3,5]
a(5)
a[10-10]
30、以下不正确的定义语句是________。
你的答案是:
正确答案是:
B
doublex[5]={2.0,4,0,6,0,8,0,10.0};
inty[5]={0,1,3,5,7,9};
charc1[]={'1','2','3','4','5'};
charc2[]={'\x10','\xa','\x8'};
31、下面程序的运行结果是________。
#include"stdio.h"main(){charstr[]="SWLIA",c;intk;for(k=0;(c=str[k])!
='\0';k++){switch(c){case'I':
++k;break;c你的答案是:
正确答案是:
B
SWA
SW*
SW*A
SW
32、以下能正确进行字符串赋值操作的是______。
你的答案是:
正确答案是:
D
chars[5]={"12345"};
chars[5]={'1','2','3','4','5',‘6’};
char*s;*s="12345";
char*s="12345";
33、以下程序段的运行结果是______。
Chara[]="program",*p;p=a;while(*p!
='g') {printf("%c",*p-32);p++;}你的答案是:
正确答案是:
C
PROgram
PROGRAM
PRO
proGRAM
34、若有说明:
char*pc[]={"aaa","bbb","ccc","ddd"};,则以下叙述正确的是______。
你的答案是:
正确答案是:
C
*pc[0]代表的是字符串"aaa"的首地址
*pc[0]代表的是字符'a'的首地址
pc[0]代表的是字符串"aaa"的首地址
pc[0]代表的是字符'a'的首地址
35、下列程序的运行结果是______。
#include#includevoidf(char*s,intn){chara,*q1,*q2;q1=s;q2=s+n-1;while(q1正确答案是:
B
GAGGAGA
AGAAGAG
GFEDCBA
AGADAGA
36、定义如下的结构体描述同学信息structStudent{unsignedlongid;charname[30];charclass[30];}s;假设此同学的序号为1002,姓名为黎明,班级为冶金3班,则描述正确的为_____。
你的答案是:
正确答案是:
C
id=1002;name=黎明;class=冶金3班;
id=1002;name=”黎明”;class=”冶金3班”;
s.id=1002;s.name=”黎明”;s.class=”冶金3班”;
s.id=1002;s.name=黎明;s.class=冶金3班;
37、用来描述C程序中注释的是_____。
你的答案是:
正确答案是:
C
//
/*
/**/
**
38、下列变量中合法的定义是_____。
你的答案是:
正确答案是:
A
short_a=2-1
longif=0xabcL
double1_d=1.5e2
floata=1.5e2.7
39、当c的值不为0时,能够将c的值赋给变量a和b的是_____你的答案是:
正确答案是:
C
c=b=a
(a=c)||(b=c)
(a=c)&&(b=c)
a=c=b
40、设有以下程序段,执行后的输出结果是_____intx=100,y=200;printf("%d",(x,y));你的答案是:
正确答案是:
B
100
200
100,200
编译出错
第二部分(程序设计题)
1编程:
要求输入整数a和b,若a*a+b*b大于100,则输出a*a+b*b百位以上的数字,否则输出两数之和a+b。
#include
main()
{
inta,b,c;
printf("pleaseinputa=");
scanf("%d",&a);
printf("pleaseinputb=");
scanf("%d",&b);
if(a*a+b*b>100)
{
c=(a*a+b*b)/100;
printf("%d",c);
}
else
printf("%d\n",a+b);
}
2编程:
根据以下函数关系:
当x<=0,y=0;当020,y=sin(x);输入一个x值,计算出相应的y值并输出。
(提示:
sin(x)属于math.h)
#include
#include
main()
{
intx;
floaty;
printf("pleaseinputx=");
scanf("%d",&x);
if(x<=0)
{
y=0;
}
elseif((0{
y=x;
}
elseif((10{
y=10;
}
else
y=sin(x);
printf("%f\n",y);
}
3编程:
根据以下函数关系:
当x2,y=sin(x);输入一个x值,计算出相应的y值并输出。
(提示:
sin(x)、sqrt(x)属于math.h)参考2
4编程:
输入三个正整数x,y,z,将这三个数由小到大输出。
#include
#include
main()
{
inta[3],i,max,j;
printf("pleaseinputthe3numbers:
");
for(i=0;i<3;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
if(a[j]>a[j+1])
{
max=a[j];
a[j]=a[j+1];
a[j+1]=max;
}
}
printf("theresultis");
for(i=0;i<3;i++)
printf("%d",a[i]);
printf("\n");
}
#include
main()
{
inta,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;a=b;b=t;
}
if(a>c)
{
t=a;a=c;c=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
printf("Theansweris:
%d,%d,%d\n",a,b,c);
}
5编程:
从键盘输入一个年号,判断该年号是否为闰年,并输出结果。
闰年是能被4整除但不能被100整除;或能被100整除且能被400整除的年号。
练习书上有,第一页
6编程实现四位电话号码的升位。
原来电话号码为1、3、5、7、9打头的号码前加2,原来电话号码为2、4、6、8打头的加3,例如:
输入1234,则输出:
21234。
#include
main()
{
longx,y;
printf("pleaseinputtelephonenumber");
scanf("%d",&x);
y=x/1000;
switch(y)
{
case1:
case3:
case5:
case7:
case9:
x=2*10000+x;break;
case2:
case4:
case6:
case8:
x=3*10000+x;break;
}
printf("theresultis%ld\n",x);
}
7编程实现四位电话号码的升位。
原来电话号码为1、2、3、4、5打头的号码前加3,原来电话号码为6、7、8、9打头的加2,例如:
输入1234,则输出:
31234。
参考6
8编程:
已知分段函数:
当x>10时,y=2*x+1;当1参考2
9编程:
输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。
三角形面积公式:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。
(提示:
sqrt(x)属于math.h)
#include
#include
main()
{
floatx,y,z;
floatarea,s;
printf("pleaseinput:
");
scanf("%f%f%f",&x,&y,&z);
if((x+y<=z)||(z+y<=x)||(x+z<=y))
printf("no\n");
else
{
s=(x+y+z)/2;
area=sqrt(s*(s-x)*(s-y)*(s-z));
printf("%f\n",area);
}
}
10编程:
已知分段函数,当x<=0时,y=3*x;当010时,y=2*x*x;从键盘输入x的值,计算y的值。
参考2
11编程:
判定用户输入一个不大于999的正整数是否为一个回文数。
回文数是指正读和反读都相同的数。
#include
main()
{
inta,x,y,z;
printf("pleaseinputanumber");
scanf("%d",&a);
if(0{
x=a/100;
y=(a-100*x)/10;
z=a%10;
if(x==0)
{
if(y==z)
printf("Yes\n");
else
printf("no\n");
}
elseif(x==z)
printf("yes\n");
else
printf("no\n");
}
}
12编程:
从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。
转换的方式是:
将a中较大的数码作为b的十位,剩余的数码作为b的个位。
例如,当输入a=49,则结果b=94。
#include
main()
{
inta,b,x,y;
printf("pleaseinputanumber");
scanf("%d",&a);
if(0{
x=a/10;
y=a%10;
if(x>=y)
{
b=a;
}
else
{
b=10*y+x;
}
printf("theresultis%d",b);
}
else
printf("awrongnumber");
}
13编程:
从键盘输入一个两位数的正整数a,将其转换形成一个整数b并输出b。
转换的方式是:
将a中较小的数码作为b的十位,剩余的数码作为b的个位。
例如,当输入a=54,则结果b=45。
参考12
14初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。
#include
main()
{
inta[10]={2,3,4,1,5,6,7,8,9,10},i,x,j,k;
printf("pleaseinputanumber");
scanf("%d",&x);
for(i=0;i<10;i++)
{
if(a[i]==x)
{
for(j=i;j<10;j++)
a[j]=a[j+1];
for(k=0;k<9;k++)
printf("%3d",a[k]);
break;
}
elseif(i==9)
printf("no");
}
}
15初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。
#include
main()
{
chara[7]={"howare"};
charb[1];
inti,j,k;
printf("pleaseinputthestring:
");
gets(b);
for(i=0;i<7;i++)
{
if(a[i]==b[0])
{
for(j=i;j<5;j++)
{
a[j]=a[j+1];
}
for(k=0;k<5;k++)
printf("%c",a[k]);
printf("\n");
break;
}
elseif(a[i]=='\0')
{
printf("no\n");
break;
}
}
}
16计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。
要求初始化矩阵,输出计算结果并输出该矩阵。
#include
main()
{
inta[4][4]={{2,123,1,5},{4,22,56,23},{5,7,89,23},{1,2,3,4}};
inti,sum=0,max,j;
for(i=0;i<4;i++)
sum=sum+a[i][i];
max=a[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(maxmax=a[i][j];
}
printf("thesumis%dandthemaxnumberis%d\n",sum,max);
}
17计算一个3*3矩阵的所有元素之和以及所有元素中的最大元素的值。
要求初始化矩阵,输出计算结果并输出该矩阵。
参考16,懒得弄了
18初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。
#include
main()
{
chara[20]={"asldfkjasldkf"};
inti;
puts(a);
for(i=2;i<7;i++)
printf("%c",a[i]);
printf("\n");
}
19编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。
要求初始化矩阵。
参考16
20初始化一矩阵a[4][4],计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。
#include
main()
{
inta[4][4]={