技能高考C语言测试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

技能高考C语言测试题
C语言知识测试题
一、单项选择题(每小题5分,共150分)
1.下列合法的常量是()。

A.-*****
B.0128
C.0XDEFG
D.13E0.5
2.以下选项中不合法的标识符是()。

A.printf
B.FOR
C.a
D._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.int a=b=c=25%5;
5.设变量均已正确定义,有语句scan(“%d%c%d%c”,a,b,c,若为变量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.若变量已正确定义,有以下程序段int a=3,b=5,c=7;
if(ab) a=b; c=a;
else c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是()。

A.程序段有语法错
B.3,5,3
C.3,5,5
D.3,5,7
7.有以下程序
#include <stdio.h></stdio.h>
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;
case 1: b++; break;
}
case 2: a++; b++;
case 3: a++; b++; break;
}
printf(“a=%d,b=%d\n”,a--,--b);
}
程序的运行结果是()。

A.a=1,b=0
B.a=3,b=2
C.a=3,b=3
D.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”,
B.c=getchar();putchar(c);若从键盘上输入abc后回车,则输出为a。

C.printf(“%6.2f”,23.456);则输出结果为23.46□。

(注:□代表空格字符)
D.scanf(“%3c%2d”,a,若从键盘输入*****后回车,则a值为’123’,b 值为45。

10.有以下程序
#include<stdio.h></stdio.h>
main()
{ int i,j, m=55;
for(i=1;ii++)
for(j=3; j j++) m=m%j;
printf("%d\n ", m);
}
程序的运行结果是()。

A.0
B.1
C.2
D.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.设int a=12; 表达式a+=a-=a*=a的值是()。

A. 12
B. 144
C. 0
D. 132
14.以下程序的输出结果是()。

main( )
{ int a=011;
printf(“%#X\n”,++a);
}
A. 12
B. 10
C. A
D. 0XA
15.在下列程序段中,若k为整型,则程序输出结果为()。

k=2; while(k=0) printf(“%d”,k); k--; printf(“%d\n”,k);
A. -1
B. 2
C. 0
D. 1
16.以下程序的输出结果是()。

main()
{ int k1=1,k2=2,k3=3,x=15;
if(!k1) x--;
else if(k2) if(k3) x=4;else x=3;
printf(“x=%d\n”,x);
}
A. x=4
B. x=15
C. x=14
D. x=3
17.若用到变量均正确定义,则下列说法正确的是()。

A .x=3;x=!x--;最终x值为2。

B.printf(“%d=%%D”,20,20);则输出20=%D
C. scanf(“%d,%d”,a,在输入数据时可输入2□3后回车。

(注:□代表空格字符)
D.执行程序段:x=1;do --x;while(x--);此循环为无限循环。

18.设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)(n=cd)后n 的值为。

A)1 B)2 C)3 D)4
19.以下程序运行后,a和b的值分别为()。

#include <stdio.h></stdio.h>
int main()
{ int a,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()
{ int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
A.2,3,3 B. 2,3,2 C. 2,3,1 D. 2,2,1
21.执行以下程序时,输入***-*****<回车> ,则输出结果是()。

</回车>
main()
{ int a=1,b;
scanf(“%2d%2d”,a,
printf(“a=%d b=%d”,a,b);
}
A.12 34 B.a=123 b=456 C.a=12 b=34 D.输入有错误
22.逗号表达式(a=3*5,a*4),a+15的值为()。

A.15
B.60
C.30
D.75
23.若有说明语句:char c="\72";则变量c()。

A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
24.下列程序段的运行结果是( )。

int n=0;
while(n++
printf("%d",n)
A. 2
B. 3
C. 4
D. 以上都不对
25.设用到的变量均正确定义,则以下不是无限循环的语句为( )。

A. for(y=0,x=1;x i++) i=x;
B. for( ; ; i =x++);
C. while(1){x++;y--;}
D. for(i=10;a=2 ; i--) sum+=i;
26.有以下程序,运行后的输出结果是()。

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
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 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;ii++,i++)
for(k=1;kk++);
printf(“%d”,k);
程序段的输出结果是()
A.1212
B.*****
C.3
D.4
29.已知字符A的ASCII码值为65,执行下列程序后#include<stdio.h></stdio.h>
main()
{char a=‘A’;
int b=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()
{int a=2,b=-1,c=2;
if(a<b)></b)>
if(b0) c=0;
else c+=1;
printf(“%d\n”,c);
}
A. 0
C.2
D.3
二、程序填空题(每空5分,计200分)
31.输入一个正整数,求该数各位之和,如输入3256, 求得3+2+5+6=16。

#include<stdio.h></stdio.h>
main()
{ int i,t= ;
scanf(“%d”,);
while( ){t+= ; ;}
printf(“%d\n”,t);
}
32. 下面程序的功能是:判断整数m 是否为素数。

试题程序:
#include <math.h></math.h>
#include <stdio.h></stdio.h>
void main ( )
{ int m, i, k;
printf ("输入一个整数:");
scanf ("%d",
k =;
for ( ; i )
if ( m % i == 0 ) ;
if ()
printf ("%d是素数\n", m );
else
printf ("%d不是素数\n", m );
}
33. 下面程序的功能是:有一分数序列





13
21
8
13
5
8
3
5
2
3
1
2
…求这个数列的前20项之和。

试题程序:
#include<stdio.h></stdio.h> main( )
{ int i,n=20;
float a=2,b=,t,s=0;
for(i=1;;i++)
{ s+=;
t=a;
;
;}
printf("sum=%9.6f\n",s);}
34.以下程序的功能是计算:m=1-2+3-4+…+9-n,并输出结果。

请填空。

int main( )
{ int m=0,f ,i,n;
scanf(“%d”,
;
for(; i i++)
{ m+=;
f= ; }
printf(“m=%d”,m)
}
35. 以下程序的功能是计算:s=1+12+123+1234+*****。

请填空。

#include<stdio.h></stdio.h>
int main()
{ int t,s=0,i;
;
for( i=1;; i++)
{ t=i+ ;
s=; }
printf("1+12+123+1234+*****=%d\n",);
}
36. 输入x,计算y值并输出。

其中分段函数如下:
x0 y=2x+3
x=0,y=0
x0,y=(x+7)/3
#include <stdio.h></stdio.h>
main()
{int x; float y ;
;
if(x0);
else if() y=0;
;
printf(“输入x的值为%d,对应y值为%f。

\n”,x,y); }
#include<stdio.h></stdio.h>
int main()
{ int x,y;

switch(x0)
{case 1:;break;
case 0: switch()
{case 1:y=0;;
:y=1;}
printf(“输入x的值为%d,对应y值为%f。

\n”,x,y);
}
38. 输入两个正整数m和n,求其最大公约数和最小公倍数。

#include<stdio.h></stdio.h>
int main()
{ int a,b,r,t,;
printf("请输入两整数:\n");
scanf("%d%d",a,
t=a*b;
if()
{a=a+b; ; a=a-b; }
r=a%b;
while( )
{ a=b; ; ; }
printf("最大公约数是:%d\n",b;
printf("最小公倍数:%d\n",t/a); }
姓名:______________ 成绩:_______________ 单项选择题(每小题5分,计150分)
姓名:______________ 成绩:_______________ 单项选择题(每小题5分,计150分)。

相关文档
最新文档