您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 计算机程序设计基础试卷A
注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题试题纸(A)课程名称:计算机程序设计基础考试时间19:30—21:00严谨治学诚信为人一、选择题(20×1分=20分)1、以下叙述中错误的是()。A.C语言源程序经编译后生成后缀为.obj的目标程序。B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件。C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中。D.C语言中的每条可执行语句和非可执行语句最终都将被转换成二进制的机器指令。2、以下叙述中错误的是()。A.算法正确的程序最终一定会结束。B.算法正确的程序可以有零个输出。C.算法正确的程序可以有零个输入。D.算法正确的程序对于相同的输入一定有相同的结果。3、e2是()。A.实型常数100B.值为100的整型常数C.非法标识符D.合法标识符4、表达式1?(0?3:2):(10?1:0)的值是()。A.3B.2C.1D.05、下列格式符中,哪一个可以用于以8进制形式输出整数()。A.%dB.%8dC.%oD.%ld6、假定所有变量均已正确定义,下列程序段运行后x的值是()。a=b=c=0,x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A.34B.4C.35D.37、下面的程序片段所表示的数学函数关系是()。y=-1;if(x!=0)if(x0)y=1;elsey=0;A.0)(x10)(x00)(x1yB.0)(x00)(x1-0)(x1yC.0)(x10)(x1-0)(x0yD.0)(x00)(x10)(x1y8、在C语言中,下列说法中正确的是()。A.不能使用“do语句while(条件)”的循环B.“do语句while(条件)”的循环必须使用“break”语句退出循环C.“do语句while(条件)”的循环中,当条件为非0时将结束循环D.“do语句while(条件)”的循环中,当条件为0时将结束循环9、在C语言的语句中,用来决定分支流程的表达式是()。A.可用任意表达式B.只能用逻辑表达式或关系表达式C.只能用逻辑表达式D.只能用关系表达式10、求整数1至10的和并存入变量s,下列语句中错误的是()。A.s=0;for(i=1;i=10;i++)s+=i;B.s=0;i=1;for(;i=10;i++)s=s+i;C.for(i=1,s=0;i=10;s+=i,i=i+1);D.for(i=1;s=0;i=10;i++)s=s+i;(附1页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题11、设有二维数组定义如下,则不正确的元素引用是()。inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};A.a[2][3]B.a[a[0][0]][1]C.a[7]D.a[2][‘c’-‘a’]12、语句printf((“%d\n“,strlen(“ats\no12\1\\“));的输出结果是()。A.11B.10C.9D.813、合法的数组定义是()。A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4};C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};14、以下对C语言函数的有关描述中,正确的是()。A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B.C函数既可以嵌套定义又可递归调用C.函数必须有返回值,否则不能使用函数D.C程序中有调用关系的所有函数必须放在同一个源程序文件中15、函数调用语句f((e1,e2),(e3,e4,e5));中参数个数是()。A.5B.4C.2D.116、对于以下递归函数f,调用f(4),其返回值为()。intf(intn){if(n)returnf(n-1)+n;elsereturnn;}A.10B.4C.0D.以上均不是17、若有说明:inti,j=7,*p=&i;则与i=j;等价的语句是()。A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;18、下面各语句中,能正确进行赋字符串操作的语句是()。A.chars[5]=”ABCDE”;B.chars[5]={‘A’,‘B’,‘C’,‘D’,‘E’};C.char*s;s=”ABCDE”;D.char*s;scanf(“%s”,&s);19、数组定义为“inta[4][5];”,引用“a+3”表示()。A、a数组第3列的首地址B、a数组第0行第3列元素的值C、a数组第3行的首地址D、a数组第0列第3行元素的值20、若有定义inta[3][4];则对数组元素a[i][j](0=i3,0=j4)正确的引用是()。A.*(a+4*i+j)B.*(*(a+i)+j)C.*(a+i)[j]D.a[i]+j二、填空题(10×1分=10分)1、C程序是由__________构成的。其中有并且只能有1个主函数。2、说明变量时,若省略存储类型符,系统默认其为__________存储类别。3、有定义:charc=‘’;inta=1,b;(c的初值为空格),执行b=!c&&a;后b的值为________。4、循环体中的continue语句是__________。5、下列程序段的功能是输入一个正整数,判断是否能被3或7整除,若能整除,输出“YES”,若不能整除,输出“NO”。请为程序段填空。voidmain(){intk;scanf(“%d”,&k);if(__________)printf(“YES\n”);elseprintf(“NO\n”);}6、结构化程序设计规定的三种基本结构是__________。7、函数形式参数的作用域为函数内部,全局的外部变量和函数体内定义的局部变量重名时,__________变量优先。(附2页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题8、以下程序段的输出结果是__________。#defineM(y)y*y+3*yvoidmain(){intk;k=M(5)*2;printf(“k=%d\n“,k);}9、以下程序段的输出结果是__________。voidswap(int*a,int*b){int*t;t=a;a=b;b=t;}voidmain(){inti=3,j=5,*p=&i,*q=&j;swap(p,q);printf(“%d%d\n”,*p,*q);}10、设有如下定义,则对字符串1iming的正确引用形式是__________。structperson{charname[20];charsex;}a={“1iming”,’m’};三、读程序写结果(6×5分=30分)1、写出以下程序段的输出结果。char*fun(char*t){char*p=t;return(p+strlen(t)/2);}voidmain(){char*str=”abcdefg”;str=fun(str);puts(str);}2、以下程序运行后的输出结果是什么?voidmain(){charp[][10]={3678,2594};inti,j;longnum=0;for(i=0;i2;i++){j=0;while(p[i][j]){if((p[i][j]-‘0’)%2)num=num*10+p[i][j]-‘0’;j=j+2;}}printf(“%d\n”,num);}3、写出以下程序段的输出结果。voidfun(intx){if(x/20)fun(x/2);printf(“%d”,x);}voidmain(){fun(15);printf(“)n”};}4、阅读下列程序段,写出程序段运行的结果。voidmain(){charstr1[]=1111111;for(inti=0;i4;i++){printf(%s\n,str1);str1[i]=’’;//空格str1[strlen(str1)-1]='\0';}}5、阅读下面程序段,写出程序段的输出结果。voidmain(){intx=100,a=10,b=20,ok1=5,ok2=0;if(ab)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;elsex=-1;printf(“%d\n”,x);}6、阅读下列程序段,写出程序段的运行结果。voidmain()(附3页)注:1、教师命题时题目之间不留空白;2、考生不得在试题纸上答题{intk=0;charc='A';do{switch(c++){case'A':k++;break;case'B':k--;case'C':k+=2;break;case'D':k=k%2;break;case'E':k=k*10;break;default:k=k/3;}k++;}while(c'G');printf(k=%d\n,k);}四、程序填空(10×2分=20分)1、以下程序段的功能是顺序输出整数n的各位数字。请填空。voidmain(){intn=123456;while(____①____){printf(“%4d”,n%10);n=n/10;}}2、有以下程序段,且变量已正确定义和赋值。for(s=1.0,k=1;k=n;k++)s=s+1.0/(k*(k+1));printf(“s=%f\n\n”,s);请填空,使下面程序段的功能与上面程序段完全相同。s=1.0;k=1;while(_____②_____){s=s+1.0/(k*(k+1));_____③_____;}printf(“s=%f\n\n”,s);3、以下程序段的功能是:输出a、b、c三个变量中的最小值。请填空。voidmain(){____④______;scanf(“%d%d%d”,&a,&b,&c);t1=ab?____⑤_____;t2=ct1?_____⑥_____;printf(“%d\n”,t2);}4、以下程序段用来统计从终端输入的字符中大写字母的个数,然后输出从终端输入的各大写字母及出现次数。num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推。用#号结束输入,请填空。(提示:函数issupper(c)的功能是判断字符c是否大写字母)voidmain(){intnum[26]={0},i;charc;while(_____⑦_____!=’#’)if(isupper(c))num[c-‘A’]=_____⑧_____;for(i=0;i26;i++)_____⑨_____printf(“%c:%d\n”,i+’A’,_____⑩_____);}五、程序设计(20分)1、(8分)函数f的原型为:voidf(int*x,intn);其功能是在从地址x开始的n个整数中(假定n个数互不相同)找出最大最小数,将其中最小的数与第一个对换,将最大数与最后一个数对换。请编写程序实现该函数。2、(12分)编写程序实现功能:从键盘输入一个整数年份y以及整数天数n,要求输出该天数n是y年的哪一年哪一月。例如:输入:20085输出:1月5日输入:2008100输出:4月9日(提示:闰年的判断条件是:年份能被400整除,或者能被4整除而不能被100整除)
本文标题:计算机程序设计基础试卷A
链接地址:https://www.777doc.com/doc-2100494 .html