2009年4月上机100套题及答案61-70

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档