2014年3月全国计算机二级C语言上机模拟试题九十七之2
来源:2exam.com 2013-12-31 14:41:21
解题思路: 第一处:利用for循环语句,对数组中的各元素进行逆置,所以终止值为n/2。 第二处:进行交换数组中元素的值,由于是依次是首和尾交换,所以应填:i。 第三处:使用中间变量t来交换的,所以应填:a[n-i-1]。 *************************************************** 给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 例如,若输入:77777,则输出将是:32767。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 给定源程序: #include
int fun( char *p )
{ int n;
n= *P-’o’;
p++;
while( *p!=0 ) {
n=n*8+*P-’o’;
p++;
}
return n;
}
main()
{ char s[6]; int i; int n;
printf("Enter a string (Ocatal digits): "); gets(s);
if(strlen(s)>5){ printf("Error: String too longer !\n\n");exit(0); }
for(i=0; s[i]; i++)
if(s[i]<’0’||s[i]>’7’)
{ printf("Error: %c not is ocatal digits!\n\n",s[i]);exit(0); }
printf("The original string: "); puts(s);
n=fun(s);
printf("\n%s is convered to integer number: %d\n\n",s,n);
}
触屏版 电脑版
3773考试网 琼ICP备12003406号-1