Res - 2009夏学期C语言上机练习参考答案汇总 下载本文

夏学期C程序设计上机练习参考答案

str[i] = 0; } }

70052 统计字符出现次数

输入一个正整数 repeat (0

输入一个以回车符结束的字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数。 输入输出示例:括号内为说明 输入: 2

(repeat=2)

s=0; for(i=0;str[i]!=0;i++){ } if(str[i]>='0'&&str[i]<='9') s=s*10+str[i]-'0'; getchar(); count=0; for(i=0;str[i] != 0;i++){ } printf(\if(str[i]==cc) count++; } } 夏3周

printf(\10008 求1~100中能被6整除的所有整数的和

#include int main(void) { int i, sum = 0; for(i=1;i<=100;i++){ } printf(\ return 0; }

('m'在\中出现2次)

20014 计算三门课程的平均成绩

程序填空,不要改变与输入输出有关的语句。

已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均分。 输入输出示例:

math = 87, eng = 72, comp = 93, average = 84

#include int main(void) { int math, eng, comp, average; math = 87;eng = 72;comp = 93; /* 若自己增加输if(i%6==0) sum+=i; programming (字符串\m (字符'm') 1234 a 输出: count = 2

(字符串\(字符'a')

count = 0 ('a'在\中没有出现过) #include \#define MAXLEN 80 int main(void) { char cc, ch; char str[MAXLEN]; int i,count; int repeat, ri; scanf(\ getchar(); for(ri = 1; ri <= repeat; ri++){ i = 0; while((str[i] = getchar( )) != '\\n') i++; str[i] = '\\0'; cc = getchar(); 入语句,程序就通不过 */ average=(math+eng+comp)/3; printf(\= %d, eng = %d, comp = %d, average = %d\\n\ } 13

夏学期C程序设计上机练习参考答案

20016 计算x的平方

假设 x 的值为3,计算 x 的平方 y,并分别以\和\的形式输出 x 和 y 的值。 输入输出示例: 9 = 3 * 3 3 * 3 = 9

#include int main(void) { int y; }

20021 计算分段函数的值

输入一个正整数repeat (0

输入 x,计算并输出下列分段函数 f(x) 的值(保留1位小数)。

当 x 不等于0时,y = f(x) = 1/x,当 x 等于0时,y = f(x) = 0。

输入输出示例:括号内是说明 输入

2 (repeat=2) 10 (x=10) 0 (x=0) 输出

f(10.00) = 0.1 f(0.00) = 0.0

#include int main(void) { int repeat, ri; double x, y; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\int x=3; y=x*x; printf(\printf(\ if(x!=0) else y=0; y=1.0/x; printf(\ } }

20022 计算摄氏温度

输入华氏温度,输出对应的摄氏温度。计算公式:c = 5*(f-32)/9,式中:c表示摄氏温度,f表示华氏温度。 输入输出示例:括号内为说明 输入

150 (fahr=150) 输出 celsius = 65

#include int main(void) { int celsius, fahr; scanf(\celsius=5*(fahr-32)/9; printf(\ }

70051 找最大值并交换

输入一个正整数 repeat (0

输入一个正整数 n (1

3 (repeat=3) 5 4 3 5 5 2 4 1 5 6 7 5 5 4 3 2 1

(n=5) (n=4) (n=5)

14

夏学期C程序设计上机练习参考答案

输出

max = 5, index = 3 4 3 5 2 5 max = 7, index = 3 1 5 6 7

max = 5, index = 0 1 4 3 2 5

#include int main( ) { int i, index, n, temp; int repeat, ri; int a[10]; 输入输出示例:括号内为说明 输入:

5 3 (n=5,m=3) 1 2 3 4 5 (5个整数) 输出:

After move: 3 4 5 1 2

#include void mov(int *x, int n, int m); int main(void) { int i, m, n; int a[80]; scanf(\ for(i = 0; i < n; i++) scanf(\ void mov(int *x,int n,int m); mov(a,n,m); scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) scanf(\ index=0; printf(\ for(i = 0; i < n; i++) printf(\ printf(\ } void mov(int a[], int n, int m) { int y,i,j; for(i=1;i<=m;i++){ /* 循环移动m次 */ y=a[n-1]; for(j=n-1;j>0;j--) a[j]=a[j-1]; a[0]=y; } } move方法参考2: void mov(int *x,int n,int m){ int i,j,t; for(i=0;i

80011 循环移动

输入两个正整数 n 和 m (1

素交换到右边一个 */ for(j=n-1;j>0;j--){ t=x[j]; x[j]=x[j-1]; x[j-1]=t; 15

夏学期C程序设计上机练习参考答案

}

} } res=search(a,n,x); if(res != -1) printf(\ else printf(\ } } int search(int *list,int n,int x){

}

80013 使用函数的选择法排序

输入一个正整数 repeat (0

输入一个正整数 n (1

要求定义并调用函数 sort(a,n),它的功能是采用选择排序算法,将数组 a 的前 n 个元素按从小到大的顺序排序,函数形参 a 的类型是整型指针,形参n的类型是int,函数的类型是void。

输入输出示例:括号内为说明 输入

3 (repeat=3) 4 (n=4) 5 1 7 6

3 (n=3) 1 2 3

5 (n=5) 5 4 3 2 1 输出

After sorted: 1 5 6 7 After sorted: 1 2 3

int i,t; for(i=0;i

输入一个正整数repeat (0

输入一个正整数 n (1

要求定义并调用函数search(list, n, x),它的功能是在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数形参 list 的类型是整型指针,形参n和x的类型是int。

输入输出示例:括号内为说明 输入

2 (repeat=2) 3 (n=3) 1 2 -6

2 (x=2) 5 (n=5) 1 2 2 5 4

0 (x=0) 输出 index = 1 Not found

#include int main(void) { int i, index, n, res, x; int repeat, ri; int a[10]; int search(int list[], int n, int x); scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) scanf(\ scanf(\ int search(int *list,int n,int x); 16