计算机语言程序设计考试试题1/5计算机语言程序设计试题题号一二三四五分值3030201010分数得分评卷人一、填空题(每空2分,共30分)1.结构化程序设计的三种基本结构是:【1】、【2】和【3】。2.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为【4】。3.若有定义inta=2;在TurboC中有printf(“%d,%d”,a,2&&++a);则输出为【5】。4.表达式x=2316&&12+1的值为【6】。5.执行语句printf(%d,strupr(Windows);后,输出结果为【7】。6.有inta=12,n=5,表达式a%=(n%=2)运算后a的值为【8】。7.在C语言中,二维数组元素在内存中的存放顺序为【9】。8.使用局部和全局变量时,全局变量和局部变量【10】同名;形参和局部变量【11】同名。9.字符数组的输入输出有两种方法:逐个字符输入输出,用格式符【12】;将整个字符串一次输入或输出,格式符【13】。10.语句段chars[20]=”ABCD”,*sp=s;sp++;puts(strcat(sp+1,”MA”));的输出结果是【14】。11.在C程序中,指针变量能够赋地址值或【15】值。得分评卷人二、单项选择题(每小题2分,共30分)1.C程序的基本单位是()A.语句B.字符C.程序行D.函数2.TURBOC中float类型变量所占字节数是()A.8B.4C.2D.23.以下符号中能用作用户标识符的是()A.ifB.3comC._3comD.break4.C语言中运算对象必须是整型的运算符是()A.%=B./C.=D.*5.执行循环语句:for(x=0,y=0;y!=200&&x4;x++)y+=100;其循环体共执行()次。A.2B.3C.4D.56.与(!a==1)等价的表达式是()。A.(a0)B.(!a)C.(a!=0)D.(a0)7.如有函数intmax(floatx){x++;returnx;},则该函数返回值的类型为()。A.float类型B.void类型C.int类型D.无法确定8.能正确表示代数式ln(x+y)的C语言表达式是()。A.log10(x+y)B.lg10(x+y)C.lg(x+y)D.log(x+y)9.执行下面的程序段后,num的值为()。int*p,num;num=10;p=#num=*p+20;A.30B.20C.10D.4010.若有定义:intx,*pp;则正确的赋值表达式是()。A.pp=&xB.pp=xC.*pp=&pD.*pp=*x11.若有定义intx=1,y=1,z=1,c;执行语句c=--x&&++y&&z++;后x、y、z的值分别是()A.0、2、2B.0、1、1C.0、1、2D.0、2、112.字符串”\abcd\13\\”的长度是()。A.7B.6C.11D.1013.下面程序main(){intc1=2,c2=0;while(c1){printf(”%d%d”,c1--,c2);}}运行的结果是()。A.输出20B.无输出内容C.陷入死循环D.输出1014.下面程序运行的结果是()。#includestdio.h#defineHELLO”lin”voidmain(){printf(“HELLO”);printf(HELLO);}A.HELLOHELLOB.HELLOC.HELLOlinD.linHELLO15.下面程序的输出结果是()。计算机语言程序设计考试试题3/5main(){intx=3,y=1;switch(x==3){case1:x++;y++;case2:x++;y++;default:x++,y++;}printf(”x=%d,y=%d\n”,x,y);}A.x=3,y=1B.x=4,y=2C.x=5,y=3D.x=6,y=4得分评卷人三、阅读程序题(20分)1.阅读程序,正确写出程序的运行结果:(10分)#includestdio.hmain(){char*cc=START\12END;inti,c;for(i=2;(c=cc[i])!='\0';i++){switch(c){case'A':putchar(c+32);break;case'T':putchar(c+2);continue;case'!':putchar(c);break;case'E':while((c=cc[++i])!='\0');--i;continue;case'10':putchar('X');break;case10:putchar('&');continue;}putchar('%');}}2.阅读下面的程序,按格式正确写出程序的运行结果:(10分)#includestdio.hintx=1,y=2;main(){y=y+x;printf(\n%d,%d,x,y);sub1(x,y);printf(\n%d,%d,x++,y);}sub1(inta,intb){inty=4;x=++b;printf(\n%d,%d,x,y);x=a++;sub2();printf(\n%d,%d,x,y);}sub2(){inty=6;printf(\n%d,%d,x,y);}得分评卷人四、改错题(10分)1.指出并修改下面程序中的错误,使其能将输入的两个整数按从小到大的次序输出(不允许增行或减行,也不允许修改程序结构):(5分)main(){voidswap(int*p1,int*p2)inta,b,*pointer_1,*pointer_2;scanf(%c,%c,&a,&b);pointer_1=a;pointer_2=b;if(ab)swap(p1,p2);printf(\na=%d,b=%d\n,a,b);}voidswap(int*p1,int*p2){inttemp;temp=p1;p1=p2;p2=temp;}计算机语言程序设计考试试题5/52.以下程序完成将输入的一行文字中的大写字母C及小写字母c删除,然后再输出。找出程序中的错误并改正。(5分)#includestdio.hmain{chars{80};inti,j;getchar(s);for(i=j=0;s[i]!='\0';i++)if(s[i]!='c'||s[i]!='C')s[j++]=s[i];s[j]='\0';putchar(s);}得分评卷人五、编程题(10分)按行输入一个2行3列的整型二维数组a,将其行列互换,存到另一个二维数组b中,并将数组b按行的形式输出。试编程实现。(10分)