首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的
admin
2018-10-21
66
问题
使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应该是:33 33 33 33 44 44 44 44 55 55 55 55。
注意:部分源程序在文件PROG1.C中。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
void fun(int(*s)[10],int*b,
int*n,int mm,int nn)
{
}
void main()
{
FILE*wf;
int w[10][10]={{33,33,33,33},
{44,44,44,44},{55,55,55,55}},
i,J;
int a[100]={0},n=0;
printf("The matrix:\n"),
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",w
[j]);
printf("\n");
}
fun(w,a,&n,3,4);
printf("The A array:\n");
for(i=0,i<n,i++)
printf("%3d",a
);
printf("\n\n");
/*********found*********/
wf=fopen("out.dat","w");
for(i=0;i<n;i++)
fprintf(wf,"%3d",a
);
fclose(wf);
/*********found*********/
}
选项
答案
void fun(int(*s)[10],int*b,int*n,int mm,int nn) { int i,j,k=0; for(i=0;i<mm;i++)/*将二维数组s中的数据按行的顺序依次放到一维数组b中*/ for(j=0;j<nn;j++) b[k++]=s[i][j]; *n=k;/*通过指针返回元素个数*/ }
解析
本题可以用两个循环来处理,由于是按行的顺序取出,所以第1个循环用于控制行下标,第2个循环用于控制列下标;若改成按列的顺序取出,则循环应改成:
for(i=0;i<nn;i++)
for(j=0;j<mm;j++)
b[k++]=s[j]
;
要注意s[j]
的下标,不能用s
[j]。
若按行取出则列标变化较快,若按列取出则行标变化较快,即循环嵌套时,越在内层的循环,其循环变量变化就越快。
转载请注明原文地址:https://kaotiyun.com/show/V0xp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下面程序把从终端读入的10个整数以二进制的方式写到一个名为bi.dat的新文件中。请填空。#include<stdio.h>FILE*fp;main(){inti,j;if((fp=fopen(【
下列叙述中,不属于软件需求规格说明书的作用的是______。
已经定义ch为字符型变量,以下赋值语句中错误的是______。
下列选项中不符合良好程序设计风格的是______。
以下程序中select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。#defineN3#defineM3select{inta
下面程序的输出是【】。main(){enumem{em1=3,em2=l,em3};char*aa[]={"AA","BB","CC","DD"};printf("%s%s\n",aa[eml],aa[em2],a
下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符1,则输出3,请填空。#include<conio.h>#include<stdio.h>#defineM81
若有如下程序:main(){inta=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b++;}p
以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。main()(inti,j;for(i=0;i<i0;i++){j=i*10+6;if(())continue;
以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。#includemain(){intn,s;printf("Enteranumber:");scanf("%d",&n);prin
随机试题
[*]
推车式二氧化碳灭火器的喷射装置含有控制阀。()
Thestonewassoheavythatitwasdifficultfortheoldmantoit.
A.空洞性肺结核,继发感染B.支气管肺癌C.囊肿继发感染D.肺脓肿E.细菌性肺炎稽留热,多伴有口唇疱疹,痰呈铁锈色,X线片呈片状淡薄炎症病变,边缘模糊不清。()
女,64岁,半年前体检测血压162/90mmHg,尿常规及肾功能正常,此后一直服用卡托普利治疗。1个月前出现夜尿增多、乏力,血压190/110mmHg。尿常规:蛋白(+),肾功能:血尿素氮16mmol/L,肌酐324μmol/L,血钾3.0mmol/L。肾
教师在教学过程中,阅读“教案选编”是()的基本方法。
如何针对学生能力的性别差异进行教育?
认知主义教学理论提倡的教学方法是
下图为用以展现进度的香蕉曲线图,图中曲线A为最早时间计划,曲线B为最迟时间计划,曲线C、D、E、F为实际进度,其中______表示延期。
Thesnowrangersareemployeesof______.Asnowrangerhimselfmustbe______.
最新回复
(
0
)