套题2C语言程序设计答案.pdf
第 1 页(共 6 页) 试试 题题 二二 参 考 答 案 与 评 分 标 准 一、一、单项单项选择题选择题 10 分,每题分,每题 2 分分,评分标准正确得评分标准正确得 2 分分,错错 误扣误扣 2 分分 1以下不能对二维数组 a 进行正确初始化的语句是 A)int a2 30; B)int a 31,2,0; Cint a2 31,2,3,4,5,6; D)int a 31,2,3,4,5,6; 2有以下程序片断 float funint x,int y) returnxy; main int a2,b5,c8; printf(“3.0fn“,funintfunac,b,a-c); 程序运行后的输出结果是 A编译出错B9 C21D9.0 3若有以下调用语句,则不正确的 fun 函数的函数原型是 main int a50,n; funn, A)void fun(int m, int x ); B)void fun(int s, int h41); C)void fun(int p, int *s); Dvoid funint n, int a; 4下面程序片段的执行结果是 defineMAX10 intaMAX, i; 班级学号姓名 2 main printf“n“; sub1 ; sub3a; sub2 ; sub3a; sub2 intaMAX, i, max5; fori0; i main int a33, *p, i; p for i1; i struct STU char num10; float score3; ; main struct STU s3“20021“,90,95,85, “20022“,95,80,75, “20023“,100,95,90, *ps; int i; float sum 0; for i0; iscorei; printf“6.2fn“,sum; 程序的运行结果是 270.00 3 include main char s100; char c, i; scanf“c“, scanf“d“, scanf“s“, s; printf“d,c,sn“, c, i, s; 已知字符a的 ASCII 码值为 97, 那么当程序输入 a97123,程序运行结果是 97 a 123 4 include int a13, b8; int maxint a, int b int c; caba b; returnc; main int a5; printf“Maxdn“, maxa, b; 程序运行结果是 Max8 5位式运算符是 C 语言作为中级语言的体现,可以实现以二进制 比特位为单位的操作,其中 “ for i1; i include main int *pNULL,n,i,sum; printf“please enter array size “; scanf“d“, pint *mallocn* sizeofint; if pNULL printf“no enough memoryn“; exit0;或者或者 return ; printf“please enter the score “; 班级学号姓名 6 fori0;i define MAX 100 void CopyStringchar c,char s; void Insertchar s; main char stringMAX; scanf“s“,string; Insertstring; printf“s“,string; void CopyStringchar c, char s int i; for i0; si0; i ci si; ci 0; void Insertchar srcStr char strTempMAX; int i 0, j 0; CopyStringstrTemp, srcStr; while strTempj 0 srcStri strTempj; i; 班级学号姓名 7 j; srcStri ; i; srcStri 0; 四四在在下面给出的下面给出的 4 4 个个程序中程序中共有共有 16 处错误处错误包括语包括语 法错误和逻辑错误法错误和逻辑错误 请找出其中的错误请找出其中的错误 并改正之并改正之 30 分,每找对分,每找对 1 个错误,加个错误,加 1 分,每修改正确分,每修改正确 1 个错误,个错误, 再加再加 1 分。分。只要找对只要找对 15 个即可,多找不加分个即可,多找不加分 1设计一个函数 MaxCommonFactor,利用欧几里德算法,即称 辗转相除法计算两个正整数的最大公约数。 include int MaxCommonFactorint a, int b; main int a, b, x; printf“ a,b“; scanf“d,d“, x MaxCommonFactora,b; printf“MaxCommonFactor dn“, x; int MaxCommonFactorint a, int b ; int r; do r a b; a b; b r; while r 0; returna; 2从键盘输入 10 个整型数据,放入数组 a 中,求其最大值、最 小值及其所在元素的下标位置,并输出。 include main int a10, n, max, min, maxPos, minPos; for n0; n max max an; maxPos n; else if an int MyStrcmpchar s, char t; main charstr120,str220; printf“ string“; getsstr1; printf“ another string“; getsstr2; if MyStrcmpstr1,str2 0 printf“str1str2n“; else if MyStrcmpstr1,str2 define ARRSIZE 10去掉末尾的去掉末尾的; voidMaxMinExchangint a, int n intmaxValuea0, minValuea0, maxPos0, minPos0; inti, temp; for i1; i maxValue maxValue ai; maxPos i; else if ai main int t,salary;2 分 printf“Please the timen“; scanf“d“,1 分 ift 744 1 分一个月超过 31 天每天 24 小时,考虑到最大最小范 围判断,而且合理即可 printf“Error, The time you entered is beyond scopen“; return; ift include include 1 分 define EPS 1e-61 分 main float a,b,c, disc,p,q;1 分变量定义与输入 printf“Please enter a,b,c“; scanf“f,f,f“, iffabsa EPS 2 分 班级学号姓名 12 printf“Two unequal real roots x16.2f, x2 6.2fn“,pq,p-q; else 1 分 printf“Two complex rootsn“; printf“x16.2f 6.2fin“,p,q; printf“x16.2f - 6.2fin“,p,q; 3.不用函数 strcat,编程实现字符串连接函数 MyStrcatchar *dstStr,char *srcStr将字符串 srcStr 连接到字符串 dstStr 的尾部,并编写主函数调用 MyStrcat 将 用户输入的两个字符串相连接。 (14 分) 参考答案参考答案 2分包括标识符命名、缩进等代码风格 include void MyStrcatchar *dstStr, char * srcStr;1分 main3分主函 数完全正确 chars80; chart80; printf“Please enter a string n“; getss; getst; MyStrcats, t; printf“The concat isn“; putss; voidMyStrcatchar *dstStr, char * srcStr while *dstStr 02分 dstStr; while *srcStr 01分 *dstStr * srcStr;3分 srcStr; dstStr; 班级学号姓名 13 *dstStr 0;2分