1、上机填空题818481题目: 给定程序中,函数fun的功能是:计算N*N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 注意:部分源程序如blank.c给出。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int tN, int n) int i, sum; _1_; for(i
2、=0; in; i+) sum+=_2_ ; for(i=0; in; i+) sum+= tin-i-_3_ ; return sum; main() int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10,i,j; printf(nThe original data:n); for(i=0; iN; i+) for(j=0; jN; j+) printf(%4d,tij); printf(n); printf(The result is: %dn,fun(t,N); 82题目: 请补充main函数,该函数的功能是:打印出1至1000中满足个
3、位数字的立方等于其本身的所有数。本题的结果为:1 64 125 216 729。 注意:部分源程序如blank.c给出。 仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其它任何内容。 #include main() int i,g; clrscr(); for(i=1;i1000;i+) g=_1_; if(_2_) printf(%4d,i); printf(n); 83题目: 请补充main函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。 例如,输入abcdef,指定字符为c,则输出ab。 注意:部分源程序如
4、blank.c给出。 仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其它任何内容。 #include #define N 80 main() int i=0; char strN; char ch; clrscr(); printf(n Input a string:n); gets(str); printf(n Input a charator:n); scanf(%c,&ch); while(stri!=0) if(stri=ch) _1_; _2_; stri=_3_; printf(n* display string *n); puts(str); 84题目: 请补充main函
5、数,该函数的功能是:输出方程组A+B=52,A+2B=60的一组正整数解。本题的结果是:A=44,B=8。 注意:部分源程序如blank.c给出。 仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其它任何内容。 #include main() int i,j,k; clrscr(); for(i=0;i100;i+) for(j=0;j100;j+) if(_1_) printf(A=%2d,B=%2d,_2_); printf(n); 来吧,来吧,淘宝网上可以淘金的! 解答81分析: 题目要求计算N*N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元
6、素中的值,然后累加反向对角线元素中的值。 在程序中定义了t二维数组表示矩阵: int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10; 对应的矩阵情况如下: 21 2 13 24 25 16 47 38 29 11 32 54 42 21 3 10 主对角线元素为21、16、32、10,反向对角线元素为24、47、11、42。 程序注解如下: #include #define N 4 fun(int tN, int n) int i, sum; /* 将保存总和的sum变量初始化为0,准备用于累加元素 */ sum=0; /* 计算主对角线元素
7、之和,tii为主对角线元素表示方法 */ for(i=0; in; i+) sum+=tii; /* 计算反向对角线元素之和,ti n-i-1为反向对角线元素表示方法 */ for(i=0; in; i+) sum+= tin-i-1 ; return sum; main() /* 表示矩阵的二维数组 */ int tN=21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10,i,j; printf(nThe original data:n); /* 输出表示矩阵的二维数组,按照每一行N个元素的格式输出 */ for(i=0; iN; i+) for(j=0
8、; jN; j+) printf(%4d,tij); printf(n); printf(The result is: %dn,fun(t,N); 82分析: 题目要求打印出1至1000中满足个位数字的立方等于其本身的所有数。所以需要使用循环遍历1至1000中所有的整数,检查这些整数的个位数字的立方是否等于其本身。 另外,取得整数i的个位数字可以使用取模运算(%)。例如123%10便得到个位上的数字3。 程序注解如下: #include main() int i,g; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ clrscr(); /* 逐一检查1至1000之间
9、的整数是否满足条件 */ for(i=1;i1000;i+) /* 取得当前检查的整数的个位数字g */ g=i%10; /* 判断当前检查的整数i是否满足个位数字g的立方等于其本身 */ if(g*g*g=i) /* 输出符合条件的整数i */ printf(%4d,i); printf(n); 83分析: 题目要求从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。为了实现以上要求,程序使用while循环逐个遍历str数组中每一个字符,将这些字符逐个地与指定字符ch比较。如果相同,则记录该字符下标退出循环。按照题意需要把这个字符及其后面的所有字符全部删除,所以程序
10、将这个字符后面一个位置设置为字符串结束标记0即可实现删除后面字符的目的。 程序注解如下: #include #define N 80 main() int i=0; char strN; char ch; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ clrscr(); printf(n Input a string:n); /* gets函数的作用是接收键盘输入的字符串,将其放入str数组中 */ gets(str); printf(n Input a charator:n); /* 接收键盘上输入的单个字符放入ch中,作为指定字符 */ scanf(%c,&c
11、h); /* 逐个将str数组中每一个字符与指定字符ch比较 */ while(stri!=0) if(stri=ch) /* 找到与指定字符ch相同的字符则退出该循环 */ break; i+; /* 为了删除后面的所有字符,只要在与ch相同的字符后面设置结束标记即可 */ stri=0; printf(n* display string *n); /* puts函数的作用是输出str字符串的内容 */ puts(str); 84分析: 题目要求输出方程组A+B=52,A+2B=60的一组正整数解。为了实现题目要求,程序使用了最笨的方法,那就是一个一个数字代入方程组试验,如果某一个数字能够满足方程组则就是解,则输出。 程序注解如下: #include main() int i,j,k; /* clrscr函数的作用是清屏,清除输出窗口中所有已经显示的内容 */ clrscr(); /* 将整数一个一个代入方程组进行测试是否符合 */ for(i=0;i100;i+) for(j=0;j100;j+) /* 判断当前代入的i、j是否满足方程组,满足则输出解 */ if(i+j=52&i+2*j=60) printf(A=%2d,B=%2d,i,j); printf(n);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1