问答题给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdio.h>
2 #define N 4
3 void fun(int(*a)[N],int*b)
4 { int i,j;
5 for(i=0;i<N;i++){
6 /*********found*********/
7 b[i]=
【1】
;
8 for(j=1;j<N;j++)
9 /*********found*********/
10 if(b[i]
【2】
a[j][i])
11 b[i]=a[j][i];
12 }
13 }
14 main()
15 { int x[N][N]={{12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3)},y[N],i,j;
16 printf("\nThe matrix:\n");
17 for(i=0;i<N;i++)
18 {for(j=0;j<N;j++)
19 printf("%4d",x[i][j])j
20 printf("\n");
21 }
22 /*********found*********/
23 fun(
【3】
);
24 printf("\nThe result is:");
25 for(i=0;i<N;i++)
26 printf("%3d",y[i]);
27 printf("\n");
28 }
问答题请编写函数fun,其功能是分别统计形参t所指二维数组中字母A和C的个数。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。1 #include<stdio.h>2 #include<stdlib.h>3 #define M 144 void NONO();5 void fun(char(*t)[N],int*a,int*c)6 {7 }8 void get(char(*s)[M])9 {int i,j;10 for(i=0;i<M;i++)11 {for(j=0;j<M;j++)12 {s[i][j]=65+rand()%12;13 printf(''%c'',s[i][j]);}14 printf(''\n'');15 }16 }17 main()18 {char a[M][M];19 int x,y;20 get(a);21 fun(a,&x,&y);22 printf(''A=%d C=%d\n'',x,y);23 NONO();24 }25 void NONO()26 {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */27 FILE *fp,*wf;28 int i,j,x,y;29 char a[M][M];30 fp=fopen(''in.dat'',''r'');31 wf=fopen(''out.dat'',''w'');32 for(i=0;i<M;i++)33 {for(j=0;j<M;j++)34 {fscanf( fp, ''%c '',&a[i][j]);}35 }36 Fun(a,&x,&y);37 fprintf(wf,''A=%d\n'',x);38 fprintf(wf,''C=%d\n'',y);39 fclose(fp);40 fclose(wf);41 }
问答题给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
typedef struct aa
{ int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{ NODE *h=NULL, *p, *s;
int i;
/**********found***********/
p=(NODE )malloc(sizeof(NODE));
h=p;
p->next=NULL;
for(i=1; idata=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
/**********found***********/
return p;
}
outlink(NODE *h)
{ NODE *p;
p=h->next;
printf("/n/nTHE LIST :/n/n HEAD ");
while(p)
{ printf("->%d ",p->data);
p=p->next;
}
printf("/n");
}
main()
{ NODE *head;
head=Creatlink(8,22);
outlink(head);
}
问答题学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组S中。请编写函数fun,其功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是60、69,则应当把分数在60~69的学生数据输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#define N 16
typedef struct
{
char num[10];
int s;
}STREC;
int fun(STREC *a,STREC *b,int 1,int h)
{
}
main()
{
STREC s[N]={{"GA005",85},("GA003",76},
{"GA002",69),{"GA004",85},{"GA001",96},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",94},{"GA012”,64),
{"GA014",91),{II GA011”,90),{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h[N],tt;FILE*out;
int i,j,n,low,heigh,t;
printf("Enter 2 integer number lowh[i]=h[j];h[j]=tt;}
for(i=0;i
问答题请编写函数fun,其功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。一维数组中数据的个数存放在形参n所指的存储单元中。
例如,若二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应:
33 44 55 33 44 55 33 44 55 33 44 55
注意
:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
void fun(int(*s)[10],int *b,int *n,int mm,int nn)
{
}
main()
{
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[i][j]);
printf("/n");
}
fun(w,a/
printf("The A array:/n");
for(i=0;i<n;i++)
printf("%3d",a[i]);
}
问答题请编写函数fun(),其功能是:找出2M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数fun()的花括号中填入编写的若干语句。
试题程序:
#define M 4
#include<stdio.h>
int fun(int a[][M])
{
}
void main()
{
int arr[2][M]={5, 8, 3, 45, 76, -4, 12, 2};
printf("max=%d/n", fun(arr));
}
问答题请编写一个函数int proc(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
例如,输入如下整数:
876 675 896 101 999 401 980 431 451 777
则输出结果为4,999。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int proc(int*s, int t, int*k)
{
}
void main()
{
int arr[10]={876, 675, 896, 101, 999, 401, 980, 431, 451, 777}, k;
system("CLS");
proc(arr, 10,
printf("%d, %d/n", k, arr[k]);
}
问答题函数fun的功能是:在有n个元素的结构体数组std中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了4名学生的数据,则程序运行的结果为: 学号:N1002 学号:N1006 共有2位学生有不及格科目 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构!1 #include<stdio.h>2 typedef struct3 {char num[8];4 double score[2];5 /**********found**********/6 }_(1)__;7 int fun(STU std[],int n)8 { int i,k=0;9 for(i=0;i<n;i++)10 /**********found**********/11 if( std[i].score[0]<60__(2)__std[i].score[1]<60)12 { k++; printf (''学号:%s'',std[i].num);}13 /**********found**********/14 return __(3)__;15 }16 main()17 {STU std[4]={ ''N1001'',76.5,82.0,''N1002'',53.5,73.0,''N1005'',80.5,66.0,''N1006'',81.0,56.0};18 printf(''\n共有%d位学生有不及格科目\n'',fun(std,4) };19 }
问答题请编写函数fun,其功能是:判断形参n中的正整数是几位数(输人数据的位数不超过4位),并将结果通过函数值返回。例如:若输入的数据为123,则输出结果为:输入的数字是3位。注意:部分源程序存在PR0G1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:
问答题请编写函数fun,它的功能是:求出能整除形参x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为:35,则有4个数符合要求,它们是:1,5,7,35。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include<stdio.h>
void fun(int x, int pp[], int*n)
{
}
main()
{int x, aa[1000], n, i;
printf("/Please enter an integer number:/n");
scanf("%d",
fun(x, aa,
for(i=0; i<n; j++)
printf("%d", aa[i]);
printf("/n");
}
问答题下列给定程序中,函数proc()的功能是:从字符串str中,删除所有小写字母c。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
void proc(char*str)
{
int i, j;
for(i=j=0; str[i]!="/0"; i++)
if(str[i]!="c")
//****found****
str[j]=str[i];
//****found****
str[i]="/0";
}
void main()
{
char str[80];
printf("/nEnter a string: ");
gets(str);
printf("The original string: ");
puts(str);
proc(str);
printf("The string after deleted: ");
puts(str); printf("/n/n");
}
问答题给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include
#include
#define N 5
#define M 8
void fun(char (*ss)[M])
{ char *ps[N],*tp; int i,j,k;
for(i=0; i
问答题给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
交换后为:
3 2 1
4 5 6
9 8 7
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在
下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 4
/**********found**********/
void fun(int ______, int n)
{ int i,s;
/**********found**********/
for (______; i++)
{ s=t[i] [i];
t[i] [i]=t[i] [n-i-1];
/**********found**********/
t[i] [n-1-i]=______;
}
}
main()
{ int t[] [N]={21,12,13,24,25,16,47,38,29,11,32,54,42, 21,33,10},i,j;
printf ("/nThe original array:/n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%d",t[i] [j]);
printf ("/n");
}
fun (t,N);
printf("/nThe result is:/n");
for(i=0; i<N; i++)
{ for(j=0; j<N;j++) printf("%d",t[i] [j]);
printf ("/n");
}
}
问答题下列给定程序中,函数fun的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include<conio.h>#include<stclio.h>/*********found*********/double fun(char*s,char*t){ int s1=0,t1=0; char*ss,*tt; ss=s; tt=t; while(*ss) { s1++;/*********found*********/ (*ss)++; } while(*tt) { t1++;/*********found*********/ (*tt)++; } if(t1>s1) return t; else return s; } void main() { char a[80],b[80]; printf("\nEnter a string:"); gets(a); printf("\nEnter a string again:"); gets(b); printf("\nThe longer is:\n\ n%S\n",fun(a,b));}
问答题给定程序中,函数fun的功能是将带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<stdlib.h>
#define N 6
typedef struct node{
int data;
struct node*next,
}NODE;
void fun(NODE*h)
{NODE*P,*q;int t;
/*********found*********/
p=
【1】
;
while(p){
/*********found*********/
q=
【2】
;
while(q){
/*********found*********/
if(p->data
【3】
q->data)
{ t=P->data;
p->data=q->data;
q->data=t;}
q=q->next;
}
p=p->next;
}
}
NODE*creatlist(int a[])
{ NODE*h,*p,*q;int i,
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0;i<N;i++)
{q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL)
h->next=p=q;
else{P->next=q;p=q;}
}
return h;
}
void outlist(NODE*h)
{NODE*P;
P=h->next;
if(p==NULL)
printf("The list is NULL!\n");
else
{printf("\nHead“);
do
{ printf("->%d",P->data);
P=P->next;)
while(P!=NULL);
printf("->End\n");
}
}
main()
{NODE*head;
int a[N]={0,10,4,2,8,6};
head=creatliSt(a);
printf("\nThe original list:\n");
outlist(head);
fun(head);
printf("\nThe list after sorting:\n");
outlist(head);
}
问答题函数fun的功能是:将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的干位和十位上。
例如,当a=45,b=12,调用该函数后c=1425。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<conio.h>
#include<stdio.h>
void fun(int a,int b,long*c)
{
}
main()
{
int a,b;
long c;
printf("Input a,b:");
scanf("%d%d",&a,&b);
fun(a,b,&c);
printf("The result is:%ld/n",c);
}
问答题请编写一个函数proc(),它的功能是:将str所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。
例如,若输入ab7g88BJ,则应输出aB7G88BJ。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlih.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void proc(char*str)
{
}
void main()
{
char tt[81];
system("CLS");
printf("/nPlease enter an string within 80 characters:/n");
gets(tt);
printf("/n/nAfter changing, the string/n %s", tt);
proc(tt);
printf("/nbecomes/n%s/n", tt);
}
问答题请编写函数proc(),其功能是:将str所指字符串中除了下标为奇数、同时ASCII值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若str所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为偶数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标为奇数,因此不应当删除。依此类推,最后t所指的数组中的内容应是d24。
注意:部分源程序给m如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void proc(char*str,char t[])
{
}
void main()
{
char str[100], t[100];
system("CLS");
printf("/nPlease enter string S:");
scanf("%s", str);
proc(str, t);
printf("/nThe result is: %s/n", t);
}
问答题给定程序中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 8
typedef struct list
{ int data;
struct list *next;
} SLIST;
void fun( SLIST *h, int x)
{ SLIST *p, *q, *s;
s=(SLIST *)malloc(sizeof(SLIST));
/**********found**********/
s->data=___1___;
q=h;
p=h->next;
while(p!=NULL
p=p->next;
}
s->next=p;
/**********found**********/
q->next=___3___;
}
SLIST *creatlist(int *a)
{ SLIST *h,*p,*q; int i;
h=p=(SLIST *)malloc(sizeof(SLIST));
for(i=0; i
{ q=(SLIST *)malloc(sizeof(SLIST));
q->data=a[i]; p->next=q; p=q;
}
p->next=0;
return h;
}
void outlist(SLIST *h)
{ SLIST *p;
p=h->next;
if (p==NULL) printf("/nThe list is NULL!/n");
else
{ printf("/nHead");
do { printf("->%d",p->data); p=p->next; } while(p!=NULL);
printf("->End/n");
}
}
main()
{ SLIST *head; int x;
int a[N]={11,12,15,18,19,22,25,29};
head=creatlist(a);
printf("/nThe list before inserting:/n"); outlist(head);
printf("/nEnter a number : "); scanf("%d",
fun(head,x);
printf("/nThe list after inserting:/n"); outlist(head);
}
问答题给定程序MODI1.C中函数 fun 的功能是:计算并输出high以内最大的10个素数之和。high的值由主函数传给fun函数。
若high的值为: 100, 则函数的值为: 732。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
int fun( int high )
{ int sum = 0, n=0, j, yes;
/************found************/
while ((high >= 2)
for (j=2; j<=high/2; j++ )
if (high % j ==0 ){
/************found************/
yes=0; break
}
if (yes) { sum +=high; n++; }
high--;
}
return sum ;
}
main ( )
{
printf("%d/n", fun (100));
}
