• 88.50 KB
  • 2021-05-13 发布

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

  • 10页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
  4. 网站客服QQ:403074932
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. '70' ‎ ‎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□X□20□Y〈回车〉    B.10□X20□Y〈回车〉  C.10X〈回车〉        D.10□X〈回车〉     20Y〈回车〉           20□Y〈回车〉 ‎ ‎6.若变量已正确定义,有以下程序段 ‎ int a=3,b=5,c=7; ‎ if(a>b) a=b; c=a; ‎ else c=b; ‎ printf("%d,%d,%dn",a,b,c); ‎ 其输出结果是( )。 ‎ A.程序段有语法错 B.3,5,3 C.3,5,5 D.3,5,7 ‎ ‎7.有以下程序 ‎ ‎#include ‎ 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=%dn”,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); ‎ 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()‎ ‎{ int i,j, m=55;‎ for(i=1;i<=3;i++)‎ ‎ for(j=3; j<=i; j++) m=m%j;‎ printf("%dn ", 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(“%#Xn”,++a);‎ ‎}‎ A. 12 B. 10 C. A D. 0XA ‎15.在下列程序段中,若k为整型,则程序输出结果为( )。‎ ‎ k=2; while(k=0) printf(“%d”,k); k--; printf(“%dn”,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=%dn”,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 ‎ 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,%dn",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%2d”,&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 %dn",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<=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‎ 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‎ main()‎ ‎{ int i,t=  【1】 ;‎ ‎  scanf(“%d”, 【2】); ‎ ‎  while(   【3】   ){t+=  【4】 ; 【5】;}‎ ‎  printf(“%dn”,t);‎ ‎}‎ ‎32. 下面程序的功能是:判断整数 m 是否为素数。‎ 试题程序:‎ ‎#include ‎ ‎#include ‎ 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 );‎ ‎ }‎ ‎33. 下面程序的功能是:有一分数序列 …求这个数列的前20项之和。试题程序:‎ ‎#include‎ main( )‎ ‎{ int i,n=20;‎ float a=2,b=【11】,t,s=0;‎ for(i=1;【12】;i++)‎ ‎ { s+=【13】;‎ ‎ t=a;‎ ‎ 【14】;   ‎ ‎ 【15】;}    ‎ printf("sum=%‎9.6fn",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++) ‎ { m+=【19】; ‎ f= 【20】; }‎ printf(“m=%d”,m)‎ }‎ ‎35. 以下程序的功能是计算:s=1+12+123+1234+12345。请填空。‎ ‎#include‎ int main()‎ ‎{ int t,s=0,i;‎ ‎【21】; ‎ for( i=1;【22】; i++) ‎ { t=i+【23】 ; ‎ s=【24】; } ‎ printf("1+12+123+1234+12345=%dn",【25】); ‎ ‎}‎ ‎36. 输入x,计算y值并输出。其中分段函数如下:‎ x<0 y=2x+3‎ x=0,y=0‎ x>0,y=(x+7)/3‎ ‎#include ‎ 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语句编程实现下列函数关系,请填空。‎ x y x<0‎ ‎-1‎ x=0‎ ‎0‎ ‎0‎ int main()‎ ‎{ 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,求其最大公约数和最小公倍数。‎ ‎#include‎ int main()‎ ‎{ int a,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("最大公约数是:%dn",b;‎ ‎ printf("最小公倍数:%dn",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