2009年4月上机100套题及答案61-70
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2009年4月上机100套题61-70 第六十一套
矩阵,要求非对角线上的元素赋值为0,请补充main函数,该函数的功能是:输出一个N N
对角线元素赋值为1。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
#include
#define N 10
void main()
{
int bb[N][N];
int I,j,n;
system("CLS");
printf(" \nInput n:\n");
scanf("%d",&n);
for(I=0;I for(j=0;j { 【1】; if(I==j) bb[I][j]=【2】; if(【3】) bb[I][j]=1; } printf(" \n***** the result ***** \n"); for(I=0;I { printf(" \n\n"); for(j=0;j printf("%4d",bb[I][j]); } } 【参考答案】 (1) bb[i][j]=0 (2) 1 (3) j==n-1-i 【考点分析】 本题考查: 二维数组元素赋值。 【解题思路】 填空1:本题的解题思路是先将所有元素置0,然后再将对角线上的元素置1,所以此空是先将当前元素置0。 填空2:如果当前元素的下标i和j相等,则此元素是主对角线元素,要将它赋值为1。 填空3:如果当前元素的下标i和j满足关系j==n-1-i,则此元素也是对角线元素,也要将它赋值为1。 【解题宝典】 对于n*n二维数组,通过二维数组元素的下标来表示数组对角线上的元素,即数组的行列下标相等。 下列给定的程序中,fun函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的"单词"是指有空格隔开的字符串)。例如,若输入: I am a student to take the examination 则应输出:I aM A studenT tO takE thE examinatioN 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include #include #include void fun(char *p) { int k=0; for ( ;*p;p++) if (k) { /*************found**************/ if (p==' ') { k=0; /*************found**************/ *p=toupper( *(p-1)); } } else k=1; } void main() {char chrstr[64]; int d; system("CLS"); printf("\nPlease enter an English sentence within 63 letters: "); gets(chrstr); d=strlen(chrstr); chrstr[d]=' '; chrstr[d+1]=0; printf("\nBofore changing:\n %s",chrstr); fun(chrstr); printf("\nAfter changing:\n %s",chrstr); } 【参考答案】 (1)错误:if(p==' ') 正确:if(*p==' ') (1)错误:*p=toupper(*(p-1)); 正确:*(p-1)=toupper(*(p-1)); 【考点分析】本题考查:toupper函数的用法,该函数功能是将小写字母转换为大写字母;指针型变量。 【解题思路】 本题比较简单,重点考查toupper函数的用法,该函数是将ch字符转换成大写字母,较多地应用了字符串处理函数。 请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 876 675 896 101 301 401 980 431 451 777 则输出结果为6,980。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include int fun(int *s,int t,int *k) { } void main() { FILE *wf; int a[10]={ 876,675,896,101,301,401,980,431,451,777},k; system("CLS"); fun(a, 10, &k); printf("%d, %d\n ", k, a[k]); /******************************/ wf=fopen("out.dat","w"); fprintf (wf,"%d, %d", k, a[k]); fclose(wf); /*****************************/ } 【参考答案】 int fun(int *s,int t,int *k) { int i; *k=0; /*k所指的数是数组的下标值*/ for(i=0;i