请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#include
int i,j;
for(i=0,j=0; s[i]!= '\\0'; i++)
/**********************found***********************/
if((s[i]>= 'A'&&s[i]<= 'Z')&&(s[i]>= 'a'&&s[i]<= 'z')) s[j++]=s[i];
/**********************found***********************/
s[j]= \}
main() {
char item[80]; clrscr();
printf(\ gets(item);
printf(\ fun(item);
printf(\}
答案及评析:
(1)错误:if((s[i]>= 'A'&&s[i]<= 'Z')&&(s[i]>= 'a'&&s[i]<= 'z')) 正确:if((s[i]>= 'A'&&s[i]<= 'Z')||(s[i]>= 'a'&&s[i]<= 'z')) (2)错误:s[j]= \正确:s[j]='\\0';
【解析】错误1:字母包括小写字母和大写字母,这里是\或\的关系,所以用运算符。
错误2:字符串的结束标志符为字符,而不是字符串。
\ 3. 编程题
下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N]),该函数的功能是:使数组右上半三角元素中的值全部置成0。例如a数组中的值为 a=4 5 6 1 7 9 3 2 6,
则返回主程序后a数组中的值应为 0 0 0 1 0 0 3 2 0
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:
#include
int fun (int a[][N]) { }
main() {
int a[N][N],i,j; clrscr();
printf(\
for(i=0;i {a[i][j]=rand(); printf(\ } printf(\ } fun(a); printf(\ for(i=0;i { for(j=0;j printf(\ printf(\ } } 答案及评析: int fun (int a[][N]) { int i,j; for(i=0;i a[i][j]=0; /*将数组右上半三角元素中的值全部置成0*/ } 【解析】本题旨在考查控制数组中右上半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。 模拟试题(十) 1.填空题 请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。例如,当str1=“cdefghij”,则str2=“cegi”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include char str1[LEN],str2[LEN]; char *p1=str1,*p2=str2; int i=0,j=0; clrscr(); printf(\ scanf(【1】); printf(\ while(*(p1+j)) { printf(\【2】\ j++; } for(i=0;i printf(\【3】); } 答案及评析: 【1】″%s″,str1 【2】%c 【3】str2 【解析】填空1:本题考查对标准输入函数scanf()的调用格式,当输入字符串时,格式控制字符串为″%s″,题目要求输入的字符串保存在str1中,所以地址表列应为字符串的首地址,即为str1。填空2:本题考查对标准输出函数printf()的调用格式,当输出为字符型变量时,格式控制字符串为″%c″。填空3:题目要求将str1中下标为偶数的字符保存在字符串str2中并输出,所以printf()函数的输出表列是str2 2. 改错题 在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。 例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include double sum=0.0; int c=0, i=0; /**********************found***********************/ while(x[i]==0) { if(x[i]<0)