湖北省技能高考C语言测试题上课讲义.docx
《湖北省技能高考C语言测试题上课讲义.docx》由会员分享,可在线阅读,更多相关《湖北省技能高考C语言测试题上课讲义.docx(12页珍藏版)》请在冰豆网上搜索。
湖北省技能高考C语言测试题上课讲义
C语言知识测试题
一、单项选择题(每小题5分,共150分)
1.下列合法的常量是()。
A.-32169B.0128C.0XDEFGD.13E0.5
2.以下选项中不合法的标识符是()。
A.printfB.FORC.&aD._00
3.以下选项中不属于正确字符常量的是()。
A.'C'B.'\\'C.'\xCC0'D.'\070'
4.设变量已正确定义并赋值,以下正确的语句是()。
A.x=y*5=x+z;B.int(15.8%5);
C.x=y+z+5,++y;D.inta=b=c=25%5;
5.设变量均已正确定义,有语句scan(“%d%c%d%c”,&a,&b,&c,&d);若为变量a和c赋数值10和20,为变量b和d赋字符X和Y。
以下所示的输入形式中正确的是(注:
□代表空格字符)()。
A.10□X□20□Y〈回车〉 B.10□X20□Y〈回车〉
C.10X〈回车〉 D.10□X〈回车〉
20Y〈回车〉 20□Y〈回车〉
6.若变量已正确定义,有以下程序段
inta=3,b=5,c=7;
if(a>b)a=b;c=a;
elsec=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是()。
A.程序段有语法错B.3,5,3C.3,5,5D.3,5,7
7.有以下程序
#include
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
case1:
b++;break;
}
case2:
a++;b++;
case3:
a++;b++;break;
}
printf(“a=%d,b=%d\n”,a--,--b);
}
程序的运行结果是()。
A.a=1,b=0B.a=3,b=2C.a=3,b=3D.a=2,b=2
8.设有条件表达式:
(EXP)?
i++:
j--;,则以下表达式中与(EXP)完全等价的是()。
A.(EXP==0)B.(EXP!
=0)C.(EXP==1)D.(EXP!
=1)
9.设用到的变量都已正确定义,则下列正确的选项是()。
A.scanf(“%6.2f”,&a);
B.c=getchar();putchar(c);若从键盘上输入abc后回车,则输出为a。
C.printf(“%6.2f”,23.456);则输出结果为23.46□。
(注:
□代表空格字符)
D.scanf(“%3c%2d”,&a,&b);若从键盘输入123456后回车,则a值为’123’,b值为45。
10.有以下程序
#include
main()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的运行结果是()。
A.0B.1C.2D.3
11.在C语言中,char型数据在内存中的存储形式是()。
A.补码 B.反码 C.源码 D.ASCII码
12.设用到的变量均正确定义,则执行语句:
(x=6)>(y=5)?
1:
1.5;后表达式的值为()。
A.1 B.1.0 C.1.5 D.编译通不过
13.设inta=12;表达式a+=a-=a*=a的值是( )。
A.12B.144C.0D.132
14.以下程序的输出结果是( )。
main()
{inta=011;
printf(“%#X\n”,++a);
}
A.12B.10C.AD.0XA
15.在下列程序段中,若k为整型,则程序输出结果为()。
k=2;while(k=0)printf(“%d”,k);k--;printf(“%d\n”,k);
A.-1B.2C.0D.1
16.以下程序的输出结果是( )。
main()
{intk1=1,k2=2,k3=3,x=15;
if(!
k1)x--;
elseif(k2)if(k3)x=4;elsex=3;
printf(“x=%d\n”,x);
}
A.x=4B.x=15C.x=14D.x=3
17.若用到变量均正确定义,则下列说法正确的是()。
A.x=3;x=!
x--;最终x值为2。
B.printf(“%d=%%D”,20,20);则输出20=%D
C.scanf(“%d,%d”,&a,&b);在输入数据时可输入2□3后回车。
(注:
□代表空格字符)
D.执行程序段:
x=1;do--x;while(x--);此循环为无限循环。
18.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 。
A)1 B)2 C)3 D)4
19.以下程序运行后,a和b的值分别为()。
#include
intmain()
{inta,b;
a=10%3,b=10/3;
printf("%d,%%%d",a,b);}
A.1,%3 B.3,%1 C.1,%1 D.1,%d
20.有以下程序,运行后的输出结果是()。
main()
{intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
21.执行以下程序时,输入1234567<回车>,则输出结果是()。
main()
{inta=1,b;
scanf(“%2d%2d”,&a,&b);
printf(“a=%db=%d”,a,b);
}
A.1234B.a=123b=456C.a=12b=34D.输入有错误
22.逗号表达式(a=3*5,a*4),a+15的值为()。
A.15B.60C.30D.75
23.若有说明语句:
charc='\72';则变量c()。
A.包含1个字符B.包含2个字符
C.包含3个字符D.说明不合法,c的值不确定
24.下列程序段的运行结果是()。
intn=0;
while(n++<3);
printf("%d",n)
A.2B.3C.4D.以上都不对
25.设用到的变量均正确定义,则以下不是无限循环的语句为()。
A.for(y=0,x=1;x>++y;i++)i=x;
B.for(;;i=x++);
C.while
(1){x++;y--;}
D.for(i=10;a=2;i--)sum+=i;
26.有以下程序,运行后的输出结果是()。
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n",i,j,k);
}
A.123B.234C.223D.233
27.以下能正确计算1×2×3×4...×10的程序段是()。
A.while(i<=10){i=1;s=1;s=s*i;i++;}
B.for{i=1,s=0;i<=10;i++;}s=s*i;
C.i=1;s=1;
do{s=s*i;i++;}while(i<=10)
D.i=1;s=0;
do{s=s*i;i++;}while(i<=10)
28.以下程序段中的变量已正确定义
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);
printf(“%d”,k);
程序段的输出结果是()
A.1212B.123123C.3D.4
29.已知字符A的ASCII码值为65,执行下列程序后
#include
main()
{chara=‘A’;
intb=20;
printf(“%d,%c”,(a=a+1,a+b,b),a+‘a’-‘A’,b);
}
A.表达式非法,输出零或不确定值B.输出结果为20,b
C.因输出项过多,无输出或输出不确定值D.输出结果为20,1541,20
30.以下程序的输出结果是()
main()
{inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf(“%d\n”,c);
}
A.0B.1C.2D.3
二、程序填空题(每空5分,计200分)
31.输入一个正整数,求该数各位之和,如输入3256,求得3+2+5+6=16。
#include
main()
{inti,t= 【1】;
scanf(“%d”,【2】);
while( 【3】 ){t+= 【4】;【5】;}
printf(“%d\n”,t);
}
32.下面程序的功能是:
判断整数m是否为素数。
试题程序:
#include
#include
voidmain()
{intm,i,k;
printf("输入一个整数:
");
scanf("%d",&m);
k=【6】;
for(【7】;i<=k;【8】)
if(m%i==0)【9】;
if(【10】)
printf("%d是素数\n",m);
else
printf("%d不是素数\n",m);
}
33.下面程序的功能是:
有一分数序列
…求这个数列的前20项之和。
试题程序:
#include
main( )
{inti,n=20;
floata=2,b=【11】,t,s=0;
for(i=1;【12】;i++)
{s+=【13】;
t=a;
【14】;
【15】;}
printf("sum=%9.6f\n",s);}
34.以下程序的功能是计算:
m=1-2+3-4+…+9-n,并输出结果。
请填空。
【16】
intmain()
{intm=0,f,i,n;
scanf(“%d”,&n);
【17】;
for(【18】;i<=n;i++)
{m+=【19】;
f=【20】;}
printf(“m=%d”,m)
}
35.以下程序的功能是计算:
s=1+12+123+1234+12345。
请填空。
#include
intmain()
{intt,s=0,i;
【21】;
for(i=1;【22】;i++)
{t=i+【23】;
s=【24】;}
printf("1+12+123+1234+12345=%d\n",【25】);
}
36.输入x,计算y值并输出。
其中分段函数如下:
x<0y=2x+3
x=0,y=0
x>0,y=(x+7)/3
#include
main()
{intx;floaty ;
【26】;
if(x<0)【27】;
elseif(【28】)y=0;
【29】【30】;
printf(“输入x的值为%d,对应y值为%f。
\n”,x,y);}
37.用switch语句编程实现下列函数关系,请填空。
x
y
x<0
-1
x=0
0
01
#include
intmain()
{intx,y;
【31】;
switch(x<0)
{case1:
【32】;break;
case0:
switch(【33】)
{case1:
y=0;【34】;
【35】:
y=1;}
printf(“输入x的值为%d,对应y值为%f。
\n”,x,y);
}
38.输入两个正整数m和n,求其最大公约数和最小公倍数。
#include
intmain()
{inta,b,r,t,;
printf("请输入两整数:
\n");
scanf("%d%d",&a,&b);
t=a*b;
if(【36】)
{a=a+b;【37】;a=a-b;}
r=a%b;
while(【38】)
{a=b;【39】;【40】;}
printf("最大公约数是:
%d\n",b;
printf("最小公倍数:
%d\n",t/a);}
答题卡
姓名:
______________成绩:
_______________
单项选择题(每小题5分,计150分)
题号
1
2
3
4
5
6
7
8
9
10
答案
题号
11
12
13
14
15
16
17
18
19
20
答案
题号
21
22
23
24
25
26
27
28
29
30
答案
填空题(每空5分,计200分)
【1】
【2】
【3】
【4】
【5】
【6】
【7】
【8】
【9】
【10】
【11】
【12】
【13】
【14】
【15】
【16】
【17】
【18】
【19】
【20】
【21】
【22】
【23】
【24】
【25】
【26】
【27】
【28】
【29】
【30】
【31】
【32】
【33】
【34】
【35】
【36】
【37】
【38】
【39】
【40】
答题卡
姓名:
______________成绩:
_______________
单项选择题(每小题5分,计150分)
题号
1
2
3
4
5
6
7
8
9
10
答案
A
C
C
C
C
A
B
B
B
B
题号
11
12
13
14
15
16
17
18
19
20
答案
D
B
C
D
A
A
B
B
A
C
题号
21
22
23
24
25
26
27
28
29
30
答案
C
C
A
C
A
D
C
C
B
C
填空题(每空5分,计200分)
【1】0
【2】&i
【3】i>0
【4】i%10
【5】i/=10
【6】sqrt(m)
【7】i=2
【8】i++
【9】break
【10】i>k(或i>=k+1)
【11】1
【12】i<=n
【13】a/b
【14】a=a+b
【15】b=t
【16】#include
【17】f=1
【18】i=1
【19】i*f
【20】-f
【21】t=0
【22】i<=5
【23】t*10
【24】s+t
【25】s
【26】scanf("%d",&x)
【27】y=2*x+3
【28】x==0
【29】else
【30】y=(x+7)/3
【31】scanf(“%d”,&x)
【32】y=-1
【33】x==0
【34】break
【35】default
【36】(a
【37】(b=a-b)
【38】(r或r!
=0)
【39】(b=r)
【40】(r=a%b)