最新湖北省技能高考C语言测试题

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

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

A. -32169
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,&d ); 若为变量 a 和 c 赋数 值10和20,为变量b 和d 赋字符X 和Y 。

以下所示的输入形式中正确的是(注:□代表空 格字符)( )。

A.10口炬20口Y 〈回车〉
B. 10口X29Y 〈回车〉
C.10X 〈回车〉
D.10
20Y 〈回车〉
6. 若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if (a>b ) a=b; c=a; else c=b;
printf("%d,%d,%d\n",a,b,c); 其输出结果是( )。

7. 有以下程序
#include <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 ”,&a );
□ X 〈回车〉
20
□ Y 〈回
车〉
A. 程序段有语法错
B.3
, 5, 3 C.3
, 5, 5 D.3
, 5, 7
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<stdio.h>
main()
{ int i,j, m=55;
for(i=1;i<=3;i++)
for(j=3; j<=i; 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(“%n”,++a);
}
A. 12
B. 10
C. A
D. 0XA
15.在下列程序段中,若k 为整型,则程序输出结果为()。

k=2; while(k=0) printf(“%d”,k); k -- ; printf(“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,&b);在输入数据时可输入2口3后回车。

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

18. 设有:int a=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 <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. 执行以下程序时,输入1234567<回车>,则输出结果是( )。

main()
{ int a=1,b;
scanf( “ %2d%2”d ,&a,&b);
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++<3);
printf("%d",n)
A. 2
B. 3
C. 4
D. 以上都不对
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()
{ 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 X 2X 3X 4…X 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.1212
B.123123
C.3
D.4
29. 已知字符A 的ASCII 码值为65,执行下列程序后#include<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)
if(b<0) c=0;
else c+=1;
printf( “ %d\n” ,c);
}
A. 0
B.1
C.2
D.3
二、程序填空题(每空 5 分,计200 分)
31. 输入一个正整数,求该数各位之和,如输入3256, 求得3+2+5+6=16。

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

试题程序:
#include <math.h>
#include <stdio.h>
void main ( )
{ int m, 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 );
}
2 3 5 8 1 3 21
—? — ? — ? — ? ? ?
20项之和。

33. 下面程序的功能是:有一分数序列 1 2 3 5 8 13…求这个数列的前
试题程序:
#in clude<stdio.h>
mai n()
{ int i,n=20;
float a=2,b= 【11 ] ,t,s=0;
for(i=1; 【12] ;i++)
{ s+= 【13];
t=a;
【14];
【15]; }
prin tf("sum=%9.6f\n",s);}
34. 以下程序的功能是计算:m=1-2+3-4+…+9-n,并输出结果。

请填空。

【16 ]
int main()
{ int m=0,f ,i ,n;
scanf( “ %d,&n);
【17];
for( 【18] ; i<=n; i++)
i 二11 【19];
:二【20] ; }
printt'\ iL,, mj
35. 以下程序的功能是计算:s=1 + 12+123+1234+12345。

请填空。

#in clude<stdio.h>
int mai n()
{ int t,s=0,i;
【21 ];
for( i=1; 【22] ; i++)
、t i 【23];
s=【24] ;}
茁:1丨I「1+12+123+1234+12345=%d\n",【25]);
}
36. 输入x,计算y值并输出。

其中分段函数如下:
x<0 y=2x+3
x=0,y=0
x>0,y=(x+7)/3
#i nclude <stdio.h>
main ()
{int x; float y ;
【26】;
if(x<0)【27】;
else if( 【28】)y=0;
【29】【30】;
printf( "输入x的值为%d,对应y值为%f。

\n ” ,x,y); } 37. 用switch语句编程实现下列函数关系,请填空。

#in clude<stdio.h>
int mai n()
{ int x,y;
【31】;
switch(x<0)
{case 1:【32】;break;
case 0: switch( 【33】)
{case 1:y=0; 【34】
【35】:y=1;}
printf("输入x的值为%d,对应y值为%f。

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

#in clude<stdio.h> int mai n()
{ int a,b,r,t,;
printf(" 请输入两整数:\n");
scan f("%d%d",&a, &b);
t=a*b;
if(【36】)
{a=a+b;
r=a%b;
【37】; a=a-b; } while( 【38】)
{ a=b; 【39】; 【40】;}
printf(”
最大公约数

:%d\n",b;
printf(”最小公倍
数:%d\n",t/a); }
答题卡
单项选择题姓名:(每
小题 5 分介,计150分)
成绩:
答题卡
姓名:__________________ 成绩: _______________________
填空题(每空5分,计200分)。

相关文档
最新文档