计算机信息管理c程序设计山东大学网络教育考试模拟题及答案内容摘要:

则缩小查找范围,在中点之后的数组元素中继续查找;否则在在中点之前继续查找。 include define N 10 main() { int x, mid, lo, hi。 static int a[N]={ 3, 5, 7, 9, 11, 13, 15, 17, 19, 21 }。 scanf( %d, amp。 x )。 lo=___(1)___。 hi=N1。 while(lo=hi) { mid=(lo+hi)/2。 if( x= =a[mid] ) ___(2)___。 else if( xa[mid] ) lo=mid+1。 else hi=__(3)__。 (1) 0 (2) break (3) mid1 } if(lo=hi) printf(Found %d at %d\n, x, mid)。 else printf(%d not found\n, x)。 四 改错题 (下面每小题有三行程序存在错误 ,要求不改变程序的功能 ,指出出错语句 ,并写出完整的正确语句 ) N N 二维整型数组中元素值为负数的元素个数占全部元素个数的百分比(输出时保留一位小数)。 行号 程序 01 include 02 define N 4 03 float fun( int arr[][N] )。 04 main( ) 05 { 06 static int aa[][N]={ 07 { 1, 2, 3, 4 }, { 4, 5, 6, 7 }, 08 { 10,11,12,13 }, {20,21,22,23 } }。 09 float p。 10 p=fun(amp。 aa)。 11 printf(p=%.1f%%, p*100)。 12 } 13 void fun( int arr[][N] ) 14 { 15 int i, j。 16 int s。 17 for( i=0。 iN。 i++ ) 18 for( j=0。 jN。 j++ ) 19 if(arr[i][j]0) 20 s++。 21 return (float)s/(N*N)。 22 } 可能出错的程序语句的行号为 :0 0 1 1 1 1 1 21,错误依次为: 行号 __10__应改为 ________p=fun(aa)。 _________________________。 行号 __13__应改为 ________float fun(int arr[][N])。 __________。 行号 __16__应改为 ________int s=0。 ___________________________。 ,查找字符串中是否有大写字母 ’A’。 若有则输出 Found,若无则输出 Not Found。 行号 程序 01 include 02 main( ) 03 { 04 char a[81],*p=a。 05 char message[10]。 06 message=Not Found。 07 printf(Please enter a string:)。 08 gets(amp。 a)。 09 while(*p) 10 { 11 if(p==’A’) 12 { 13 message=Found。 14 break。 15 } 16 p++。 17 } 18 puts(message)。 19 } 可能出错的程序语句的行号为 :0 0 0 0 1 1 18,错误依次 为: 行号 __05__应改为 _________char *message。 ____________________。 行号 __08__应改为 _________gets(a)。 __________________________。 行号 __11__应改为 _________if(*p==’A’)_______________________。 五 阅读理解 : __7,8,4,4,5_____。 int i =2。 main ( ) { int i =5。 sub1()。 sub1()。 sub2()。 sub2()。 printf(”%d”, i)。 } sub1( ) { static int i =6。 i ++。 printf(”%d,”, i)。 } sub2( ) { int i =3。 i ++。 printf(”%d,”, i)。 } 2. 下面程序的输出结果为: ____2800___。 main( ) { static int x[ ]={10,7,5,8}。 int s, i,*p。 s=1。 p=x。 for(i=0。 i4。 i++) s*=*(p+i)。 printf(%d\n,s)。 } 六 程序设计 ,该函数将字符 ch打印 row行 col列。 (8分 ) 2. 有一篇文章,共有 3行文字,每行 80个字符。 要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。 (10分 ) 3.输入 5 个实数 ,去掉一个最大值 ,去掉一个最小值 ,求其他三个数 的平均值 (输出时要求保留一位小数 .)如输入 ,。 则输出 ++:。 (10分 ) 解: main( ) { void ptr()。 char ch。 int row,col。 scanf(“%d%c%d”,amp。 row,amp。 ch,amp。 col)。 ptr(ch,row,col)。 } void ptr(char ch, int row, int col)。 { int i ,j。 for(i=1。 i=row。 i++) {for(j=1。 j=col。 j++) printf(“%c”,ch)。 printf(“\n”)。 } } main() { int i,j,upper,lower,digit,space,others。 char text[3][80]。 upper=lower=digit=space=others=0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。