《程序设计基础期末考试答案》由会员分享,可在线阅读,更多相关《程序设计基础期末考试答案(5页珍藏版)》请在金锄头文库上搜索。
1、2013-2014-1期末考试科目:程序设计基础日期:2014年1月4日计科系班级:学号姓名第1题(2分)C语言程序从main()函数开始执行,所以这个函数要写在()程序文件的开始程序文件的任何位置程序文件的最后它所调用的函数的前面第2题(2分)不正确的标识符是()_a2a2JInt2ai第3题(2分)以下对字符型变量c进行赋值的错误语句是?()A. charcl=a;B. charc2=97;C. charc3=200;charc3=”k”;第4题(2分)若t为int型,逗号表达式:t=l,t+5,t+的值是()A. 2B. 1C. 76第5题(2分)x=2,y=-3,z=3,则表达式x|y
2、+z&y-z的值为()A. 0B. -1C. 12第6题(2分)在C语言中对变量定义描述正确的是()A. 可以不定义即可使用B. 在函数的开始先定义后使用C. 随时定义随时用定义可以不用指明变量类型第7题(2分)下列哪个运算符的优先级高于算术运算符?A. !B-IIC. +=!=第8题(2分)下列哪条语句能够实现:输出double类型的变量d,输出2位小数,共占10列宽度,如果宽度不够在左边补空格。()A. printf(”f”,d);B. printf(”10lf”,d);C. printf(%10.2lf,d);printf(-10.2lf,d);第9题(2分)对于C程序的函数,以下哪条叙
3、述是正确的?()A. 函数定义不能嵌套,但函数调用可以嵌套B. 函数的定义可以嵌套,但函数调用不能嵌套C. 函数定义与调用均不能嵌套函数定义与调用均可以嵌套第10题(2分)一个函数返回值的类型是由()决定的。A. return语句中表达式的类型B. 在调用函数时临时C. 调用该函数的主调函数的类型定义函数时指定函数类型第11题(2分)在一个源程序文件中定义的全局变量的有效范围为()A. 本源程序文件的全部范围B. 从定义变量的位置开始到源程序文件结束C. 一个C程序的所有源程序文件函数内全部范围第12题(2分)t=若有定义:inta34=l,2,0,4,6,8,10;则初始化后,a1得到的值为
4、()。A. 0B. 4C. 26第13题(2分)下列描述正确的是()A. if语句中条件表达式只能是关系表达式或逻辑表达式B. break语句只能用于循环语句中C. if语句中条件表达式的括号不能省略if语句中else应与离它最近的if语句匹配第14题(2分)若w=l,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z的值是()A. 4B. 2C. 31第15题(2分)C语言中不能放入switchf)的括号中的是?()A. a+b(a和b均为整数类型)B. c+5(c为字符类型)C. d(d为double类型)25第16题(2分)给出以下定义:charx=abcdefg;chary=(
5、,a,;b,;c,;d7e*;f,;g,;则正确的叙述为()A. 数组X和数组Y等价B. 数组x和数组Y的长度相同C. 数组X的长度大于数组Y的长度数组X的长度小于数组Y的长度第17题(2分)以下程序段()x=-l;do(x=x*x;while(!x);A. 是死循环B. 循环执行一次C. 循环执行二次有语法错误第18题(2分)若二维数组a有m列,则在aij前的元素个数为()A. j*m+jB.B. i*m+j+li*m+j第19题(2分)以下对于C语言数组描述错误的是?()A. 数组一旦定义,就不能改变其容量B. 数组一旦定义,就不能改变其首地址C. 不管是一维数组还是二维数组,其元素在内存
6、中都是连续存放的我们可以在程序运行过程中根据实际需要增加数组的容量第20题(2分)C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为(地址传递单向值传递由实参传给形参,再由形参传回给实参由用户指定传递方式第21题(3分)下列程序段运行后i的值是()inti=9;switch(i+l)(case10:i+;case11:+i;break;case12:+i;break;default:i=i+l;11121314第22题(3分)阅读程序,输出结果为()#includevoidfunc(intb)(intj;for(j=0;j4;j+)(bj=bj-j;main()(inta=5,6,
7、7,8,i;func(a);for(i=0;i7)printf(%d,n);A. 876B. 987C. 10989876第24题(3分)下列程序段输出的结果为?()charstr=la2b3c;inti;for(i=0;stri=,0,;i+)(if(stri=,01&stri=,9,)printf(”c”,stri);A. Ia2B. b3cC. abc123第25题(3分)阅读下列程序,如果输入的m和n是:40和24,请问程序输出什么?()intm,n,i,k,min,t=0;scanf(”d,%d,&m,&n);if(mn)min=m;elsemin=n;for(i=l;i=min;i
8、+)if(m%i=0&n%i=0)k=i;t+;printf(,k=%d/t=%d/k/t);A. k=24,t=2B. k=8,t=lC. k=8,t=3k=24,t=4第26题(3分)请求出1-1000之内,能被7整除的非偶数整数,并且每输出10个就换一行。请问填空处正确的是()inti,k;for(i=l;i1001;i+)if(填空)printf(,%dt,i);if(k%10=0)printfCV);i%7=0i%7=011i%2!=0i%7=0&i%2!=0i%7=0&i%2=0第27题(3分)己知fun函数的功能是求一维整数数组的最大值,main函数将调用fun函数来求a数组中各
9、行的最大值,请问填空处应该填写以下哪个选项?()voidmain()(inta410=1,2,3,8,7,4,1,2,9,3,1,0,3,4,1,10,14,6,20,14,1,8,45,6,7,8;intLmax;for(i=0;i4;i+)(填空);printf(Hmax=%dn/max);/*intfun(intb,intn)intizmax=b0;for(i=0;imax)max=bi;returnmax;(*/max=fun()max=fun(a,10)max=fun(ai,10)max=fun(aiz10)第28题(3分)巳知a是己定义好的M行N列的二维数组,下列程序段是对a数组按
10、中心横轴进行数组元素的互换,如:a为3行3列|123|经过以下程序运行之后变为I789|456456789123下列程序的填空1和填空2处是相同的,请问该填什么?()for(i=0;iN;i+)(for(j=0;jM/2;j+)t=aji;aji=(填空1);(填空2)=t;aN-j-liajN-i-laM-j-liajM-i-l编程题:1、include请在main函数中输入一个100-200之内的整数给fun函数,/fun函数的功能是:求出1到该整数之间,所有能被7整除,但是不能2整除的整数的个数。如:输入150,输出结果为:k=lla(有11个这样的数)注意:只能在fun函数的内部完成程
11、序编写,不能改动main函数。该题15分。intfun(intn)voidmain()(intn,k;scanf(%d,&n);k=fun(n);printf(k=%dn,k);2.include/fun函数的功能是删除一个字符串的后置*。如:输入字符串:*abc*ld*345*,输出结果为:*abc*ld*345注意:只能在fun函数的内部完成程序编写,不能改动main函数。该题21分。voidfunfcharczintn)voidmain()(intizn=0;charc50;scanf(,%s/c);n=strlen(c);fun(c,n);puts(c);答案:includestdio.h”/*voidfun(charc,intn)(inti;for(i=n-l;i=0;i-)if(ci=*)ci=W;elsebreak;*/voidfun(charczintn)(inti=n-l;while(ci=,*)ci=W;i-;voidmain()(intizn=0;charc50;scanf(,%s/c);n=strlen(c);fun(c,n);puts(c);getch();/屏幕捕捉函数。