您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 习题/试题 > 2011-2012第一学年C语言程序设计试卷
2011-2012第一学年C语言程序设计试卷(供2011电气类专业使用)一、单项选择题(每小题1分,30个小题共30分)⒈C语言中,字符(char)型数据在微机内存中存储形式是A.反码B.补码C.EBCDIC码D.ASCII码⒉C语言中不合法的字符串常量是A.”\121”B.’y=’C.“\n\n”D.“ABCD\x6d”⒊设有语句chara=’\72’;则变量aA.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法⒋设a、b、和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A.a&&bB.a=bC.a||b+c&&b-cD.!((ab)&&!c||1)⒌判断char型变量C是否为大写字母的最简单且正确的表达式是A.‘A’=c=’Z’B.(c=’A’)&(c=’Z’)C.(’A’=c)AND(’Z’=c)D.(c=’A’)&&(c=’Z’)⒍以下选项中不是C语句的是A.{inti;i++;printf(“%d\n”,i);}B.;C.a=5,c=10D.{;}⒎若变量已正确定义,要将a和b中的数交换,下面不正确的语句组是A.a=a+b,b=a-b,a=a-b;B.t=a,a=b,b=t;C.a=t;t=b;b=a;D.t=b;b=a;a=t;⒏以下程序的输出结果是A.AB.aC.ZD.zmain(){charx=’A’;x=(x=’A’&&x=’Z’)?(x+32):x;printf(“%c\n”,x);}⒐变量已正确定义,以下程序的输出结果是A.输出格式说明与输出项不匹配,输出无定值B.5.17C.5.168D.5.169000x=5.16894;printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);⒑以下程序的输出结果是A.0B.1C.2D.3main(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“%d\n”,c);}⒒若执行以下程序时从键盘上输入3和4,则输出结果是A.14B.16C.18D.20main(){inta,b,s;scanf(“%d%d”,&a,&b);s=a;if(ab)s=b;s*=s;printf(“%d\n”,s);}12以下程序段的输出结果是A.9B.1C.11D.10intk,j,s;for(k=2;k6;k++,k++){s=1;for(j=k;j6;j++)s+=j;}printf(“%d\n”,s);13以下程序段的输出结果是A.12B.15C.20D.25inti,j,m=0;for(i=1;i=15;i+=4)for(j=3;j=19;j+=4)m++;printf(“%d\n”,m);14以下程序段的输出结果是A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$main(){inti=1;for(i=1;i=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$\n”);}15以下程序的输出结果是A.0B.1C.6D.无定值fun(inta,intb,intc){c=a*b;}main{intc;fun(2,3,c);printf(“%d\n”,c);}16以下程序的输出结果是_______A.8B.30C.16D.2longfib(intn){if(n2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf(“%d\n”,fib(6));}17下列选项中,不能用作标识符的是A)_1234_B)_1_2C)int_2_D)2_int_18请选出以下语句的输出结果printf(%d\n,strlen(\t\\065\xff\n));A)5B)14C)8D)输出项不合法,无正常输出19下面能正确进行字符串赋值操作的是A)chars[5]={ABCDE};B)chars[5]={′A′,′B′,′C′,′D′,′E′};C)char*s;s=ABCDE;D)char*s;scanf(%s,&s);20设有数组定义:chararray[]=China;则数组array所占的空间为A)4个字节B)5个字节C)6个字节D)7个字节21设有以下说明语句structex{intx;floaty;charz;}example;则下面的叙述中不正确的是A)struct结构体类型的关键字B)example是结构体类型名C)x,y,z都是结构体成员名D)structex是结构体类型名22有以下说明和定义语句structstudent{intage;charnum[8];};structstudentstu[3]={{20,200401},{21,200402},{10\9,200403}};structstudent*p=stu;以下选项中引用结构体变量成员的表达式错误的是A)(p++)-numB)p-numC)(*p).numD)stu[3].age23以下程序段的输出结果是:A.9B.10C.12D.13main(){intarr[10],i,k=0;for(i=0;i10;i++)arr[i]=i;for(i=0;i4;i++)k+=arr[i]+i;printf(“%d\n”,k);}24以下程序的输出结果是:A.不定值B.0C.-1D.1#include“stdio.h”main(){printf(“%d\n”,NULL);}25以下程序的输出结果是:A.23B.24C.25D.26voidprtv(int*x){printf(“%d\n”,++*x);}main(){inta=25;prtv(&a);}26以下程序中若第一个printf语句输出的是:194,则第二个printf语句的输出结果是:A.212B.204C.1a4D.1a6main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(“%x\n”,p);printf(“%x\n”,p+9);}27若有定义和语句:intc[4][5],(*cp)[5];cp=c;则对C数组元素的引用正确的是:A.cp+1B.*(cp+3)C.*(cp+1)+3D.*(*cp+2)28以下程序段的输出结果是:A.60B.68C.99D.108main(){inta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int(*p)[4]=a,i,j,k=0;for(i=0;i3;i++)for(j=0;j2;j++)k+=*(*(p+i)+j);printf(“%d\n”,k);}29以下能正确进行字符串赋值、赋初值的语句组是:A.chars[5]={‘a’,’e’,’i’,’o’,’u’};B.char*s;s=”good!”;C.chars[5]=”good!”D.chars[5];s=”good”;30以下程序段的输出结果是()A.-850,2,0B.300,0,2C.-30,1,2D.2,2,1main(){inti,j,row,col,m;intarr[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=arr[0][0];for(i=0;i3;i++)for(j=0;j3;j++)if(arr[i][j]m){m=arr[i][j];row=i;col=j;}printf(%d,%d,%d\n,m,row,col);}二、填空(每空2分,共40分)以下程序实现百分制到五分制的转换,变量score接收键盘输入的百分制数据,请填空。#includestdio.hmain(){chargrade;floatscore;scanf(%f,&score);switch(【1】){case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C';break;case6:grade='D';break;default:grade='E';break;}putchar(【2】);}【1】(int)(score/10.0)【2】grade以下为递归方法求n!的函数,请填空。floatfac(intn){floatf;if(n0)printf(n0,dataerror!);elseif(n==0||n==1)f=1;elsef=【3】;【4】;}【3】n*fac(n-1)【4】returnf或return(f)补全“用冒泡法”对5个数排序的程序main(){inta[6];inti,j,t;printf(input5numbers:\n);for(i=1;i6;i++)scanf(%d,&a[i]);printf(\n);for(j=1;j=4;j++)for(i=1;【5】;i++)if(a[i]a[i+1]){t=a[i];a[i]=【6】;a[i+1]=t;}printf(thesortednumbers:\n);for(i=1;i6;i++)printf(%d,a[i]);}【5】i6-j【6】a[i+1]以下为求一个矩阵的转置矩阵的部分程序,两矩阵分别用a,b二维数组存放,请填空。#includestdio.hmain(){inta[2][3],b[3][2];inti,j;printf(输入矩阵A(2*3):\n);for(i=0;i2;i++)for(j=0;j3;j++)scanf(%d,【7】);printf(A:\n);for(i=0;i2;i++)for(j=0;j3;j++)b[j][i]=【8】;printf(B:\n);for(i=0;i3;i++){for(j=0;j2;j++)printf(%5d,b[i][j]);printf(\n);}}【7】&a[i][j]【8】a[i][j]以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。main(){inti,j,n;charch=′A′;scanf(%d,&n);if(n11){for(i=1;i=n;i++){for(j=1;j=n-i+1;j++){printf(%2c,ch);【9】;}【10】;}}elseprintf(nistoolarge!\n)printf(\n);}【9】ch++【10】printf(“\n”);6下面程序是指从终端读入一个字符串放入字符数组中,然后利用指针变量输出上述字符串,请填空。#include“stdio.h”main(){inti;chars[21],*p;p=【11】;gets(p);while(*p)putchar(【12】);}【11】s【12】*p++7以下程序段给数组所有元素输入数据,用指针a表示元素的方法应在划线处填入的是:main(){inta[10],i=0;while(i10)scanf(“%d”,_【13】_);i++;}【13】a+i8若有定义语句:chars[100],d[100];intj=0,i=0;,且s中已赋字符串,请填空以实现字符串拷贝(从s数组到d数组)。(注:不得使用逗号表达式)while(s[i]){d[j]=【14】;j++;}d[j]=’\0’;【14】s[i++]9mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。intmystrlen(char*str){inti;for(i=0;【15】!=′\0′;i++);return(i);}【15】*(str+i)或str[i]10以下定义的结构体类型拟包含两个成员,其中成员变量info用来存入整形数据;成员变量next是指
本文标题:2011-2012第一学年C语言程序设计试卷
链接地址:https://www.777doc.com/doc-3044084 .html