简答题(共5题,每题4分,共20分) 1.有一字符型变量ch,写出一个判断ch是否为数字的逻辑表达式 2.已知c循环语句:inta=0;for(=1;j main() int 1 for(i=0 i++) continue
一、 简答题(共 5 题,每题 4 分,共 20 分) 1. 有一字符型变量 ch,写出一个判断 ch 是否为数字的逻辑表达式。 2. 已知 C 循环语句:int a=0; for(j=1; j main() { int i, j; for(i=0; ; i++) { j=i*10+6; if( ) continue;
printf("d",3) 2.下面的函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。 完成函数中下划线部分。 Strapp (char a[], char b[]) int num=0, n=0 while(*(a+num)! num++ while(b[n])i*(a+num)=b[n]i num++ return(num)i 3.下面程序中,se1ect函数的功能是:在N行M列的二维数组中,选出一个 最大值作为函数值返回,并通过形参传回此最大值所在的行下标。完成函数 中下划线部分。 # define n 3 #define M 3 int select(int a[N][M],int *n) t int i,], row=l, colum=l; for(i=0;ia [row][colum])row=i; colum=j; I return 4.下面的函数用来在w数组中插入x,w数组中的数己按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数。插入后数组中的数仍有序。完成函 数中下划线部分。 void fun (char *w, char x, int *n w[*n]=xi while (x>w[p]) w[p]= 5.下面的程序将输入字符中的小写字母转化成大写字母输出,其它字符按原样
printf("%d",j); } } 2. 下面的函数把 b 字符串连接到 a 字符串的后面,并返回 a 中新字符串的长度。 完成函数中下划线部分。 Strapp(char a[], char b[]) { int num=0,n=0; while(*(a+num)!= ) num++; while(b[n]){*(a+num)=b[n]; num++; ;} return(num); } 3. 下面程序中,select 函数的功能是:在 N 行 M 列的二维数组中,选出一个 最大值作为函数值返回,并通过形参传回此最大值所在的行下标。完成函数 中下划线部分。 #define N 3 #define M 3 int select(int a[N][M],int *n) { int i,j,row=1,colum=1; for(i=0;ia[row][colum]){row=i; colum=j;} *n= ; } return ; } 4. 下面的函数用来在 w 数组中插入 x,w 数组中的数已按由小到大顺序存放,n 所指存储单元中存放数组中数据的个数。插入后数组中的数仍有序。完成函 数中下划线部分。 void fun (char *w,char x,int *n) { int i,p; p=0; w[*n]=x; while (x>w[p]) ; for(i=*n;i>p;i--)w[i]= ; w[p]=x; ++ *n; } 5. 下面的程序将输入字符中的小写字母转化成大写字母输出,其它字符按原样
输出,当输入字符为“!”时程序结束。完成程序中下划线部分。 #include <stdio. h n() char ch printf("Inpr g(! to quit):) do i ch getchar ( if( ch ch +/A putcha fwhile 编程题(共1题,10分) X< 已知函数f(x)={0x=0其中x为整数且x的最大值不超过12, 0 编程当输入x时,求f(x)的值并输出结果
输出,当输入字符为“!”时程序结束。完成程序中下划线部分。 #include main() { char ch; printf(”Input string(! to quit):”); do{ ch = getchar(); if( ) ch = ch + ’A’-’a’; putchar(ch); }while( ); } 三、 编程题(共 1 题,10 分) 已知函数 2 0 ( ) 0 0 ! 0 x x f x x x x = = 其中 x 为整数且 x 的最大值不超过 12, 编程当输入 x 时,求 f(x)的值并输出结果
答案: 简答题 1分 2 答对其中两个即可(循环语句及条件对得1分,循环体对1分) int a=0,i=l; int a=0,i=l: int a=0,i=l: while(i<101) loop: if(i<101) a=a+i fa=a+ii )While(i<101) i++; goto loop (int a, int b) (2分 nt ci (1分) return ci (1分) 4.18,10,6,8(答对一个1分) float score (2分) struct student students[4]=f 101 80.5}, Wa F 95.4} 103,“ Zhangtao","M 7.4} 104 85.0 (2分) 、完成下列程序缺少部分(每空2分,只写出正确答案的一部分,可适当给
答案: 一、 简答题 1. ch>=’0’ && ch<=’9’ 2. 答对其中两个即可(循环语句及条件对得 1 分,循环体对 1 分) 3. int sum(int a,int b)…………………………………………………(2 分) { int c; c=a+b; ……………………………………………………………………………………(1 分) return c; ………………………………………………………………………(1 分) } 4. 18,10,6,8(答对一个 1 分) 5. struct student{ int num; char name[20]; char sex; float score; }; ………………………………………………………………………………………………………(2 分) struct student students[4]={ {101, ”Liping”, ’M’, 80.5}, {102, ”Wanghan”, ’F’, 95.4}, {103, ”Zhangtao”,’M’, 77.4}, {104, ”Zhougan”, ’F’, 85.0}, } ………………………………………………………………………………………………………(2 分) 二、 完成下列程序缺少部分(每空 2 分,只写出正确答案的一部分,可适当给 int a=0,i=1; do{ a=a+i; i++; }While(i<101); int a=0,i=1; while(i<101) { a=a+i; i++; } int a=0,i=1; loop:if(i<101) {a=a+i; i++; goto loop; } 1 分 1 分 1 分 1 分
分 1.i=ach=a')&&(ch (1分) printf( Enter x: scanf("号d″,&x) …(2分 if (x<=12) break rinf(\nx is great than 12. Re-enter x: while(1) (1分) if(x<o (1分) else (x==0) .(1分) for(i=1;i<=x冫i++) (1分) (1分) printf("\nthe function f(x)=gld",f)i 分)
1 分) 1. i=’a’&&ch=’a’)&&(ch main() ………………………………………………………………………………………(1 分) { int x; long f; int i; printf(”Enter x:”); do{ scanf(”%d”,&x); …………………….………………………………(2 分) if(x<=12) break; printf(”\nx is great than 12. Re-enter x:”); }while(1); …………………………………………………….………………(1 分) if(x<0) …………………………………….…………………………………………(1 分) f=x*x; else (x==0) …………………………………………………………………………(1 分) f=0; else …………………………………………………………………………………………(1 分) { f=1; for(i=1;i<=x;i++) ……………………………………………………(1 分) f=f*i; …………………………………………………………………………(1 分) } printf(”\nthe function f(x)=%ld”,f);……………(1 分) }