C语言练习题答案 下载本文

{

unsigned int i; for(i = 1;i <= n; i++) {

printf(\ } } main() {

unsigned int i;

printf(\ scanf(\ Fact(i); }

---------------------------25 26.

爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。参考例6.15程序,编写计算这条阶梯共有多少阶的程序如下所示,其中存在一些语法和逻辑错误,请找出并改正之,然后上机运行程序并写出程序的运行结果。

#include main() {

int x = 1, find = 0; while (!find); {

if (x%2=1 && x%3=2 && x%5=4 && x%6=5 && x%7=0) {

printf(\ find = 1;

x++; } } } 答案:

#include main()

{ int x = 1, find = 0; while (!find) {

if (x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) {

printf(\ find = 1; } x++; } }

---------------26 27.

从键盘任意输入一个正整数,编程判断它的奇偶性。要求输入变量定义为int类型且由用户从键盘输入。

程序的运行示例1: Input an integer number: 4↙

4 is an even number

程序的运行示例2: Input an integer number: 3↙

3 is an odd number

输入格式: \

输出格式:

输入信息提示:\偶数输出格式:\奇数输出格式:\答案:

#include main() { }

-------------------------------------27 28.

int n, m;

printf(\scanf(\m = n % 2; if (m)

printf(\printf(\else

用动态数组编程输入任意m个班学生(每班n个学生)的某门课的成绩,计算最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入(不限定m和n的上限值)。 输入提示信息:

\\输入格式:\

输出提示信息和格式:\答案:

#include #include

void InputScore(int *p, int m, int n);

int FindMax(int *p, int m, int n, int *pRow, int *pCol); int main() {

int *pScore, m, n, maxScore, row, col; printf(\ scanf(\

pScore = (int *)calloc(m * n, sizeof (int)); /* 申请动态内存 */ if (pScore == NULL) {

printf(\ exit(0); }

InputScore(pScore, m, n);

maxScore = FindMax(pScore, m, n, &row, &col);

printf(\ free(pScore); /* 释放动态内存 */ return 0; }

/* 函数功能:输入m行n列二维数组的值 */ void InputScore(int *p, int m, int n) { int i, j;

printf(\ for (i = 0; i < m; i++) {

for (j = 0; j < n; j++) {

scanf(\ } }

}

/* 函数功能:计算任意m行n列二维数组中元素的最大值,并指出其所在行列下标值 */

int FindMax(int *p, int m, int n, int *pRow, int *pCol) {

int i, j, max = p[0]; *pRow = 0; *pCol = 0;

for (i = 0; i < m; i++) {

for (j = 0; j < n; j++) {

if (p[i * n + j] > max) { max = p[i * n + j];

*pRow = i; /*记录行下标*/ *pCol = j; /*记录列下标*/ } } }

return max; }

-----------------------------28 29.

下面程序的功能是交换变量a和b中的值。 找出其中的错误并改正之。

#include main() {

int a,b,*p,*q,*t; p=&a; q=&b;

printf(\请输入变量a和b的值:\ scanf(\ *t=*p ; *p=*q ; *q=*t ;

printf(\交换后a和b的值:a=%d b=%d\\n\} 答案:

#include

main() {

int a,b,*p,*q,*t; p=&a; q=&b;