C考试系统题库含答案程序题

int i,num;

for(i=1;str[i]!=(○1 ?\\0? );i++) {

if(str[i]!=(○2 ? ?) && str[i-1]==(○3? ?)) }

printf(“num=%d”,num);

折半查找法:设数组长度为n,则将输入的数m与a[n/2]比较,若ma[n/2],则将a[n/2+1]到a[n]的数继续折半进行查找。

8. 程序功能:有10个数按升序放在一个数组中,输入一个数,要求用折半查找该数是数组中的第几个元素,如果该数不在数组中,打印出“NO”。#include “stdio.h” void main() {

int a[10]={12,32,45,62,71,76,80,85,90,95}; int num,bott,top,mid; scanf(\ bott = 0, top = 9; while(bott小于等于top) { mid=(bott+top)/2; if( num == a[mid])

{printf(\ else if( num 小于 a[mid]) ;

else bott=mid+1; } if(大于top) printf(\}

num++;

11

第四章 函数

程序填空题

F1下列程序的功能是:将一个数字字符串转换为一个整数。例如,有字符串“-1234567”程序将它转换为整数-1234567。 #include #include long fs(char *p) { int i=0.sign=1; long num=0; if(p[i]=='-') sign=<-1>;

if(p[i]=='+'||p[i]=='-') i=1; else i=0;

while(p[i]!='\\0') {

=10; num+=p[i]-48; i++; }

num = sign*num; return(num); }

void main() { char s[9]; long n;

printf(\ gets(s); n=fs(s);

printf(\}

F2下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序 #include #define N 20

void fun(int a[],int n) { int i,j,t,p;

for (j=0;j

{p=j; for (;i

12

if (a[p]>a[i])

; t=a[p];a[p]=a[j];a[j]=t; } } main() {

int a[N]={9,6,8,3,-1},i,m=5; printf(\排序前的数据:\for (i=0;i

printf(\fun(a,m);

printf(\排序后的数据:\for (i=0;i

F3.下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:

80.5 60 72 90.5 98 51.5 88 64 则低于平均分的学生人数为4(平均分为:75)。 #include #include #define N 20

int fun (float *s,int n,float *aver) {float ave,t=0.0; int count=0,k,i; for (k=0;k

;(不可使用复合的赋值运算符) ave=t/n; *aver=ave;

for (i=0;i

if (s[i]; }

main()

{float s[30],aver; int m,i;

printf(\ printf(\ for (i=0;i

printf(\

13

printf(\)

N4.下列程序用递归算法实现,输入任意一个整数,然后按从高到低输出各个位上的数字。

#include void main() {

long int n;

void func(long); scanf(\ ; }

void func( long m ) {

if(m>=10)

; printf(\}

R5下面函数的功能是从键盘输入一组小写字母,并保存在字符数组str 中。通过fun()函数把字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入”abcdefg”,输出“AbCdEfG”。 vodi fun(char s[]) {

int i;

for(_i = 0; s[i] != '\\0' ;i++) {

if(s[i]>=’a’<&&>s[i]<=’z’) s[i] =s[i]<-> 32; } }

F6.以下函数返回数组s中最大元素的下标,数组中元素的个数由t传入。

Findmax(int s[],int t) {

int m,n;

for(n=0,m=n;ns[m]) ; return ; }

F7、下面程序的功能是:主函数调用了sub函数,实现在3行4列的二维数组中,找出每一行上的最小值,请填空。

14

void sub(int b[3][4]) {int i,j,t,min; for(i=0;i<3;i++) {t=0;

for(j=1;j<4;j++)

if(b[i][j]< b[i][t]>) t=j;

printf(“i=%d,min=%d\\n”,i,); } } main()

{int a[3][4]={1,7,5,4,9,10,8,15,43,24,25,17}; sub(a); }

F8、以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。

#define N 3 #define M 3

select(int a[N][M],int *n) { int i,j,row=1,colum=1; for(i=0; i

if(a[i][j]>a[row][colum]) { row=i; colum=j; }

*n=;

return ; } main()

{ int a[N][M]={9,11,23,6,1,15,9,17,20},max,n; max=select(a,&n);

printf(“max=%d,line=%d\\n”,max,n); }

R9、mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。

int mystrlen(char *str) { int i;

for(i=0; str[i]'\\0';i++); return();

}

F10、下面的程序通过函数average 计算数组中各元素的平均值,请填空。

float average(int *pa,int n) { int i;

float avg=0.0; for(i=0;i

15

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4