考试试卷(F卷) 标准答案 计算机程序设计课程56学时3。5学分考试形式:闭卷 一、选择题(15小题,每小题2分,共计30分) 1。下面不正确的字符串常量是A。 A)abcB)1212C)0D) 2以下正确的叙述是D A)在C程序中,每行中只能写一条语句 B)若a是实型变量,C程序中允许赋值a10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误(精确)地表示 D)在C程序中,是只能用于整数运算的运算符 3已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2A十6一3;后,c2中的值为A A)DB)68C)不确定的值D)C 4sizeof(float)是B: A)一个双精度型表达式B)一个整型表达式 C)一种函数调用D)一个不合法的表达式 5。以下说法正确的是D: A)输入项可以为一实型常量,如scanf(f,3。5); B)只有格式控制,没有输入项,也能进行正确输入,如scanf(ad,bd); C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(4。2f,f); D)当输入数据时,必须指明变量的地址,如scanf(f,f); 6已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是D(注:表示回车)。 inta1,a2;charc1,c2; scanf(dd,a1,a2);scanf(cc,c1,c2); A)1020ABB)1020AB C)1020ABD)1020AB 7。请阅读以下程序: voidmain() {inta5,b0,c0; if(abc)printf(); e1seprintf(); 以上程序D: A)有语法错不能通过编译B)可以通过编译但不能通过连接 C)输出D)输出 8。下面程序段的运行结果是C。 xy0; while(x15){y;xy;} printf(d,d,x,y); A)20,7B)6,12C)20,8D)8,20 9。若有说明:inta〔3〕{0};则下面正确的叙述是D。 A)只有元素a〔0〕可得到初值0 B)此说明语句不正确 C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0 10。在c语言中,引用数组元素时,其数组下标的数据类型允许是C。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 11。下面程序段的运行结果是B。 charc〔5〕{a,b,,c,}; printf(s,c);} A)’a’’b’B)abC)abcD)ab 12。以下叙述正确的是C。 A)在C程序中,main函数必须位于程序的最前面 B)C程序的每行中只能写一条语句 C)C语言本身没有输入输出语句 D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误 13简单变量做实参时,实参与其对应的形参之间的数据传递方式是C。 A)双向值传递方式B)地址传递方式 C)单向值传递方式D)用户指定传递方式 14。编辑程序的功能是A。 A)修改并建立源程序B)将源程序翻译成目标程序 C)调试程序D)命令计算机执行指定的程序 15。在C语言中,5种基本数据类型的存储空间长度排列顺序为C。 A)charint1ongintfloatdoubleB)charint1ongintfloatdouble C)charint1ongintfloatdoubleD)charint1ongintfloatdouble 二、计算表达式(每小题1。5分,共计15分): 设intx25,y20;floata102。56,b50。87;(注意:各式结果不影响后续的题目!) 1(y)(x)(6) 2yy25(25) 3xy0?(x2y):(x2y)(65) 4(xy)2(int)(ab)(int)b(3) 5x2(ab)2(37。845) 6!(xa)(yb)1(0) 7!(ab1)yx2(1) 8计算(y0)(y)后y的值为:(20) 9printf(d,’102’);结果为(66) 10已知’a’的ASCII码为97,则:printf(c,’d’);结果为(d) 三、写出下列程序的的执行结果(每小题5分,共计20分,注意输出格式) 1includestdio。h Intmain() {inta23389,b45;floatx647。3586,y13643。5538; charc1’A’,c2〔〕Hello; printf(a4d,b4d,a,b); printf(9。2f,9。2f,x,y); printf(o,x,u,b,b,b); printf(d,c,c1,c1); printf(s,6。4s,c2,c2); return0; } a 2hr3hr3hr8hr9hr, b 4hr5hr6hr4hr7hr。 3hr6hr, 1hr3hr6hr4hr3hr。 5hr5hr5hr5hr, 2hrd , 4hr5hr6hr5hr, A H e l l o , H e l l 2includestdio。h defineN10 intmain() {inta1,b0,i; for(i0;i {printf(6d6d,a,b); printf(); aba; bab;} return0;} 1hr0hr1hr1hr2hr3hr5hr8hr1hr3hr2hr1hr3includestdio。h intmain() {inti,j,k0; for(i1;i31;i) {for(j2;ji1;j) if(ij0)break; if(ji) {printf(7d,i); k; if(k20)printf(); } } Return0; } 2hr3hr5hr7hr1hr1hr1hr3hr1hr7hr1hr9hr2hr3hr2hr9hr4includestdio。h intmain() {inti16,j,x6,y,z;staticcharc〔〕Iamastudent; ji1;printf(5d,j); xij;printf(5d,x); x1,y2,z3; xyz; printf(5d,(zx)y?z:y); xyz1; xyz; printf(5d,5d,5d,x,y,z); printf(s,5。4s,c,c); return0; } 1hr7hr1hr0hr2hr9hr0hr, 0hr, 0hrI a m a s t u d e n t , I a m 四、程序填空(每空1。5分,共计15分) 1。下面程序的功能是:将字符数组s2中的全部字符拷贝到字符数组s1中,不用strcpy函数。 includestdio。h main() {chars1〔80〕,s2〔80〕; inti; printf(inputs2:); gets(s2); for(i0;s2〔i〕!’’;i) s1〔i〕s2〔i〕; s1〔i〕’’; printf(s1:s,s1); return0; } 2输入20个整数,找出其中的最大数及最小数,并求其和值。 includestdio。h intmain() {inta〔20〕,i,max,min,sum; printf(inputa〔0〕a〔19〕:); for(i0;i20;i) scanf(d,a〔i〕); maxa〔0〕;mina〔0〕;suma〔0〕; for(i1;i20;i) {if(a〔i〕max)maxa〔i〕; if(a〔i〕min)mina〔i〕; suma〔i〕; } printf(d,d,d,max,min,sum); return0; } 3输入一行字符到字符数组中,将其中的小写字母转化成大写字母,大写字母转化成小写字母,然后输出。 includestdio。h includestring。h main() {charc,str〔80〕; inti; gets(str); for(i0;(cstr〔i〕)!’’;i) {if(c’A’c’Z’)cc32; elseif(c’a’c’z’)cc32; str〔i〕c;} puts(str); return0; } 五、编写程序(每小题10分,共计20分) (注意:可做在试卷反面) 1输出100到300之间能被5整除却不能被3整除的所有数之和。 includestdio。h intmain() {intn,sum0; for(n100;n300;n) if(n50n3!0)sumn; printf(d,sum); return0; } 2编写main函数及一个求x阶乘(x!)的用户自定义函数fun(),并在主函数中调用该函数求组合数c的值 添加图片注释,不超过140字(可选) 。 includestdio。h intmain() {longintfun(longintx); longres,res1,res2,res3,m,n; scanf(ld,ld,m,n); res1fun(m);res2fun(n);res3fun(mn); resres1(res2res3); printf(ld,res); return0; } longintfun(longintx); {longinti,res1; for(i2;ix;i) resi; return(res); }