简答题\n 下面所列举的函数名正确且具有良好风格的是() A、2_abcd() B、GetNumber() C、change_directory() D、chushihua@()\n简答题\n 下列说发错误的是()。 A、assert()其实是一个在assert.h中定义的宏,用来验证“不应该”发生的情况是否的确不会发生。 B、assert()的功能就是验证assert后括号内表达式值的真假,当该表达式的值为真时,它什么也不做。反之,则立即终止程序的执行,并报告错误,但是不会对错误采取其他处理措施。 C、在使用assert()时,必须在源文件中用编译预处理指令包含头文件assert.h。 D、断言不仅可以用于调试程序,还可以作为程序的功能,检查有可能发生的程序错误。\n简答题\n 以下程序执行后输出结果是 #include int MaxValue(int x, int y) { return x>y? x:y; } int MinValue(int x,int y) { return x>y? y:x; } int main() { int a=4,b=3,c=5,d,e,f; d=MaxValue(a,b); d=MaxValue(d,c); e=MinValue(a,b); e=MinValue(e,c); f=a+b+c-d-e; printf("%d,%d,%d\n",d,f,e); return 0; } A、5,4,3 B、3,4,5 C、 5,3,4 D、3,5,4\n简答题\n 在下列哪些情况下适合使用断言? A、检查程序中的各种假设的正确性。 B、证实或测试某种不可能发生的状况确实不会发生。 C、捕捉不应该或者不可能发生的非法情况。 D、捕捉程序中有可能出现的错误。\n简答题\n 设计一个函数,用来判断一个整数是否为素数。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include #include int IsPrimeNumber(int number); int main() { int n, ret; printf("Input n:"); scanf("%d", &n); ret = IsPrimeNumber(n); if (___________) { printf("%d is a prime number\n", n); } else { printf("%d is not a prime number\n", n); } return 0; } //函数功能:判断number是否是素数,函数返回非0值,表示是素数,否则不是素数 int IsPrimeNumber(int number) { int i; if (number for (i=2; ________________; i++) { if (_______________) // 被整除,不是素数 return 0; } return 1; } A、第11行: ret != 0 第29行: i 第31行: number % i == 0 B、第11行: ret == 0 第29行: i 第31行: number % i == 0 C、第11行: ret == 0 第29行: i 第31行: number / i == 0 D、第11行: ret != 0 第29行: i 第31行: number / i == 0\n简答题\n 完全数,又称完美数或完数(Perfect Number),它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。注意:1没有真因子,所以不是完全数。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include #include int IsPerfect(int x); int main() { int m; printf("Input m:"); scanf("%d", &m); if (_________________) /* 完全数判定 */ printf("%d is a perfect number\n", m); else printf("%d is not a perfect number\n", m); return 0; } /* 函数功能:判断完全数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数 */ int IsPerfect(int x) { int i; int total = 0; /* 1没有真因子,不是完全数 */ for (__________________) { if (___________) total = total + i; } return total==x ? 1 : 0; } A、第10行: IsPerfect(m) 第24行: i=1; i 第26行: x % i == 0 B、第10行: m 第24行: i=1; i 第26行: x % i != 0 C、第10行: IsPerfect(m)!=1 第24行: i=0; i 第26行: x / i == 0 D、第10行: IsPerfect(m)==0 第24行: i=0; i 第26行: x % i != 0\n简答题\n 下列说法错误的是()。 A、我们常将程序具有遇到不正确使用或非法数据输入时仍能保护自己避免出错的能力称为程序的健壮性。 B、在函数的入口处增加对函数参数合法性的检查以及对函数调用是否成功的检查,是一种常用的增强程序健壮性的方法。 C、对于一个封装好的函数,外界对函数的影响仅限于入口参数,函数对外界的影响仅限于函数的返回值和数组、指针形参 。 D、编译器给出的警告信息无关紧要,因此可以忽略。\n简答题\n 下列说法错误的是()。 A、当函数原型与函数定义中的形参类型不一致时,编译器一般都会指出参数类型不匹配的编译错误。因此,写上函数原型有助于编译器对函数参数进行类型匹配检查。 B、函数声明是一条语句,不包括函数体。 C、无论何种情况,只要把用户自定义的所有函数都放在main函数的前面,就可以不用写函数原型了。 D、函数调用时,要求实参与形参的数量相等,它们的类型也要匹配,匹配的原则与变量赋值的原则一致。当函数调用时的实参与函数定义中的形参的类型不匹配时,有的编译器会发出警告,提示有可能出现数据信息丢失,而有的编译器则不会发出警告。\n简答题\n 以下程序有语法错误,有关错误原因的正确说法是 #include void prt_char(float x); int main() { int G=5,k; ...... k=prt_char(G); ...... return 0; } int prt_char(int x) { ...... } A、函数原型和函数定义不匹配 B、变量名不能使用大写字母 C、函数名不能使用下划线 D、函数prt_char(int x)定义的位置不对,不能放在主函数main()的后面。\n简答题\n 设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#includestdio.h intMaxCommonFactor(inta,intb); intmain() { inta,b,x; printf(Inputa,b:); scanf(%d,%d,a,b); x=_______________; if(x!=-1) { printf(MaxCommonFactor=%d\n,x); } else { printf(Inputerror!\n); } return0; } //函数功能:计算两个正整数的最大公约数,-1表示没有最大公约数 intMaxCommonFactor(inta,intb) { intr; if(a=0||b=0)return-1;//保证输入的参数为正整数 do{ ____________; a=b; _____________; }while(__________); returna; } A、第8行: MaxCommonFactor(a, b)第29行: r = a % b第31行: b = r第32行: r != 0 B、第8行: MaxCommonFactor(a, b, x)第29行: r = a % b第31行: a= r第32行: r == 0 C、第8行: MaxCommonFactor(a, x)第29行: r = b % a第31行: b= r第32行: r = 0 D、第8行: MaxCommonFactor(x, b)第29行: r = a/ b第31行: a= r第32行: r != 0\n简答题\n 以下程序的功能是选出能被3整除且至少有一位是5的两位数的整数,输出所有满足条件的数及其个数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include int Sub(int k,int n) { int a1,a2; a2=k/10; a1=k-a2*10; if(________________) { printf("%4d",k); n++; return n; } else return -1; } int main() { int n=0,k,m; for(k=10;k { m=__________; if(________) n=m; } printf("\nn=%d\n",n); return 0; } A、第7行: (k%3==0&&a2==5)||(k%3==0&&a1==5) 第22行: Sub(k,n) 第24行: m!=-1 B、第7行:(k%3==0 &&a2==5) && (k%3==0 &&a1==5) 第22行:Sub(n,k) 第24行:m==-1 C、第7行:(k%3=0 && a2=5)||(k%3=0 && a1=5) 第22行:Sub(k,n) 第24行:m=-1 D、第7行:(k%3=0 && a2=5) && (k%3=0 && a1=5) 第22行:Sub(n,k) 第24行:m!=-1 \n简答题\n 设计一个函数MinCommonMultiple(),计算两个正整数的最小公倍数。 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include int MinCommonMultiple(int a, int b); int main() { int a, b, x; printf("Input a,b:"); scanf("%d,%d", &a, &b); x = _________________; if (__________) printf("MinCommonMultiple = %d\n", x); else printf("Input error!\n"); return 0; } //函数功能:计算两个正整数的最小公倍数,-1表示没有最小公倍数 int MinCommonMultiple(int a, int b) { int i; if (_________________) return -1; // 保证输入的参数为正整数 for (i=1; i { if (________________) return i * a; } return b * a; } A、第8行: MinCommonMultiple(a, b) 第10行: x != -1 第22行: a 第26行: (i * a) % b == 0 B、第8行: MinCommonMultiple 第10行: x == -1 第22行: a 第26行: (i * a) % b == 0 C、第8行: MinCommonMultiple(b, a) 第10行: x != -1 第22行: a 第26行: (i * a) / b == 0 D、第8行: MinCommonMultiple(int a, int b) 第10行: x = -1 第22行: a 第26行: (i * a) % b == 0\n简答题\n 编程计算下面组合数的值 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include _________________________; int main() { int m, k; _________; do{ printf("Please input m,k (m>=k>0):"); scanf("%d, %d", &m, &k); } while (______________); p = (double)Factorial(m) / (Factorial(k) * Factorial (m-k)); printf("p=%.0f\n", p); return 0; } //函数功能:计算无符号整型数number的阶乘 unsigned long Factorial(unsigned int number) { unsigned long i, result = 1; for (________________) { result *= i; } return result; } A、第2行: unsigned long Factorial(unsigned int number) 第6行: double p 第11行: m 第23行: i=2; i B、第2行: long Factorial(unsigned int number) 第6行: double p 第11行: m 第23行: i=1; i C、第2行: unsigned long Factorial(int number) 第6行: int p 第11行: m 第23行: i=2; i D、第2行: unsigned Factorial(unsigned number) 第6行: int p 第11行: m 第23行: i=1; i<=number; i++\n简答题\n 下列说法中错误的是()。 A、函数中的return语句可以有多个,但是多个return语句并不表示函数可以用return返回多个值,用return返回的函数值只能有一个。 B、在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元,此时形参值的变化会影响到实参的值。 C、形参也是局部变量,只能在函数体内访问。 D、在C语言中,实参与其对应的形参各占独立的存储单元,函数调用时的参数传递就是把实参的值复制一份给形参,即由实参向形参进行单向传值,因此形参值的变化不影响实参的值。\n简答题\n 以下程序执行后的输出结果是 void Fun(int v , int w) { int t; t=v; v=w; w=t; } int main( ) { int x=1,y=3,z=2; if(x>y) Fun(x,y); else if(y>z) Fun(y,z); else Fun(x,z); printf("%d,%d,%d\n",x,y,z); return 0; } A、1,3,2 B、1,3,3 C、3,1,2 D、2,3,1\n