填空题请补充函数proc(),该函数的功能是:把一个字符串中的字符(字母)按从小到大排序,并把这个全部由字母组成的字符串保存在原串中,函数返回这个字符串的长度。例如,若输入“abc12def”,则新字符串为abcdef,字符串长度为6。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define M 20
int proc(char*str)
{
int i=0, j=0, k=0, m=0;
char t;
char*p=str;
while(*p)
{
if((*p>一"A"
p++;
}
*(str+i)="/0";
______;
while(*(p+j))
{
k=j;
______;
while(*(p+k))
{
if(*(p+k)<*(str+m))
{
t=*(str+m);
*(str+m)=*(p+k);
*(p+k)=t;
}
k++;
}
j++;
}
return i;
}
void maill()
{
char str[81];
int n;
system("CLS");
printf("Input the original string");
gets(str);
printf("***The Original string***/n");
puts(str);
printf("***The new string***/n");
n=proc(str);
puts(str);
printf("***The length of Flew string is: %d***/n", n);
}
填空题下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。
例如,若字符串为“abcd”,则应输出“dcba”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
/**********found**********/
void fun(char a)
{
if(*a)
{fun(a+1);
/**********found**********/
printf("%c"*a);
}
}
main()
{
char s[10]="abcd";
printf("处理前字符串=%s/n, 处理后字符串=", s);
fun(s);
printf("/n");
}
填空题给定程序MODI1.C中函数fun的功能是先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。
请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序如下。
#include<stdio.h>
void fun()
{ int a[3][3],sum;
int i,j;
/**********found***********/
______,
printf("Input data:");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
/************found**********/
scanf("%d",a[i][j]);
}
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("Sum=%d/n",sum);
}
main()
{
fun();
}
填空题计算机中网络通信协议IP是{{U}} 【5】 {{/U}}。
填空题给定程序MODllC中函数fun的功能是:输出M行M列整数方阵,然后求两条对角线上各元素之和,返回此和数。
#inClude<coMo.h>
#inClude<stdio.h>
#dehne M 5
/************found************/
int fun(int n,int xx[][])
{int i,j,sum=0;
printf("/n The%dx%d matrix:\n"M,M);
for(i=0;i<M;i++)
{ for(j=0;j<M;j++)
/************found************/
printf("%f",xx[i][j]);
printf("/n");
}
for(i=0;i<n;i++)
sum+=xx[i][i]+XX[i][[n-i-1];
return(sum);
}
main( )
{int aa[M][M]={{1,2,3,4,5),{4,3,2,1,0),
{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
clrscr( );
printf("/n The sum Of all elements On 2 diagnals is %d."fun(M,aa));
}
填空题以下程序的运行结果是{{U}} 【8】 {{/U}}。
int k=0;
void fun (int m)
{m+=k; k+=m;
printf("m=%d k=%d",m,k++)
}
main()
{int i=4;
fun(i++);
printf("i=%d k=%d/n",i,k);
}
填空题以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,
否则返回0。请填空。
int isprime(int a)
for(i=2;i<=a/2;i++)
if(a%i==0){{U}} [8] {{/U}};
{{U}} [9] {{/U}};
填空题十进制数53转换为十六进制数为 【7】 。
填空题下面程序的运行结果是{{U}} [17] {{/U}}。
#include <stdio.h>
int f(int a[],int n)
{ if(n>1)
return a[0]+f(a+1,n-1);
else
return a[0];
}
main()
{int aa[10]={12,3,4,5,6,7,8,9,10},s;
s=f (aa+2,4); printf("%d/n",s); }
填空题下列程序的输出结果是 【9】 。 main() int a[]=2,4,6,*prt= for(y=0;y<3;y++) z=(*(ptr+y<x)?*(ptr+y):x; printf("%d/n",z);
填空题下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。
请改正函数fun中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct aa
{int data;
struct aa *next;
}NODE;
int fun(NODE *h)
{
int sum=0;
NODE *p;
p=h->next;
/********found********/
while(p->next)
{
if(p->data%2=0)
sum+=p->data;
/********found********/
p=h->next;
}
return sum;
}
NODE *creatlink(int n)
{
NODE *h,*p,*s;
int i;
h=p=(NODE*)malloc(sizeof(NODE));
for(i=1;i<n;i++)
{
s=(NODE*)malloc(sizeof(NODE));
s->data=rand()%16;
s->next=p->next;
p->next=s;
p=p->next;
}
p->next=NULL;
return h;
}
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;
int sum;
head=creatlink(10);
outlink(head);
sum=fun(head);
printf("/nSUM=%d",sum);
}
填空题下面程序的功能是 【12】 。 double sub(double x,int y) int n; double z; for(n=1,z=x;n<y;n++) z=z* x; return z; main() double a=2.0,b=4.0,c; c=sub(a,b) ; printf("%f",c) ;
填空题若有以下定义和输入语句,要求给c1、c2、c3分别输入字符A、B和C,请写出从键盘正确输入数据的形式。
char c1, c2, c3;
scanf("%4c", scanf("%4c", scanf("%4c",
填空题下面程序的功能是实现变量x、y内容交换,请填空。 #define EXCHANGE(a,b,c) a=b;b=c;c=a; main() int x=10,y=8,z; 【14】 printf("%d,%d",x,y);
填空题下述函数统计字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。 int word(char*s) int num=0,flag=0; while(*s) if( 【13】 =") flag=0; else if 【14】 flag=1;num++ return 【15】 ;
填空题以下程序运行后的输出结果是{{U}} {{U}} {{/U}} {{/U}}。
main()
{ char m;
m='B'+32; printf("%c/n",m);
}
填空题以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun(int n) int m=0, f=1, i; for(i=1; i<=n; i++) m+=i*f; f=______; return m; main() printf("% d//n",{{U}} {{/U}});
填空题以下程序的输出结果是{{U}} 【9】 {{/U}}。
main()
{ int a=5,b=4,c=3,d;
d=(a>b>C) ;
printf(“%d/n”,D) ;
}
填空题下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
/*********found*********/
void fun(int x,int y)
{int t;
/*********found*********/
t=x;x=y;y=t;
}
void main()
{int a,b;
a=8;
b=3;
fun(
printf("%d%d/n",a,b);
}
填空题以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)小找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。
#include <stdio.h>
void f(int x[],int n)
{ int p0,p1,i,j,t,m;
i=j=x[0]; p0=p1=0;
for(m=O;m<n;m++)
{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]<j) {j=x[m];p1=m;)
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[pl];x[p1]={{U}} 【14】 {{/U}};{{U}} 【15】 {{/U}}=t
}
main()
{ int a[10],u;
for(u=0;u<10;u++) scamp("%d",
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
ptintf("/n");
}
