假定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其他*号全部删除。形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为* * * * A*BC*DEF*G* * * * * * *,删除后,字符串中的内容应当足ABCDEFG* * * * * * *。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include void fun(char *a,char *p){}main()char s[81],*t;void NONO();printf(″Enter a string:\n″);gets(s);t=s;while(*t)t+ +;t— —:while(*t= =′*′)t— —;fun(s,t);printf(″The string after deleted:\n″);puts(s);NONO();}void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/{FILE *in,*out;int i;char s[81],*t;in=fopen(″in.dat″,″r″);out=fopen(″out.dat″,″w″);for(i=0;i{fscanf(in,″%s″,s);t=s;while(*t) t+ +;t— —;while(*t= =′*′)t— —;fun(s,t);fprintf(out,″%s\n″,s);}fclose(in);fclose(out);}
若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是( )。
有以下程序:#include#includemain( ){char str[]={″Hell0 Beijing″;printf(″%d,%d\n″,strlen(str),sizeof(str));}程序的运行结果是( )。
给定程序MODll.C中fun函数的功能是:将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
fun (int n, int *a)
{int i, j, p, t;
for (j = 0; ja[i])
/************found************/
t=i;
if (p!=j)
{t = a[j]; a[j] = a[p]; a[p] = t;}
}
}
putarr(int n, int *z)
{int i;
for (i = 1; i <= n; i++, z++)
{printf("%4d", *z);
if (!(i%10)) printf("/n");
} printf("/n");
}
main()
{int aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;
printf("/n/nBefore sorting %d numbers:/n", n); putarr(n, aa);
fun(n, aa);
printf("/nAfter sorting %d numbers:/n", n); putarr(n, aa);
}
有以下程序: #include int fun(int n) { if(n==1) return 1; else return(n+fun(n-1)); } main() { int x; scanf(''%d'',x); x=fun(x); printf('%d\n'',x); } 执行程序时,给变量x输入10,程序运行后的输出结果是( )。
有以下程序:#includemain(){FILE*fp;int a[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(f1));fp=fopen("d2.dat","rb");fread(a,sizeof(int),10,fp);fclose(fp);for(i=0;i}程序的运行结果是( )。
有以下程序: #include main() { int a[10]={11,12,13,14,15,16,17,18,19,20),*p=a,i=9; printf("%d%d%d\n",a[p—a],p[i],*(a[i])); } 程序运行后的输出结果是( )。
深度为5的完全二叉树的结点数不可能是( )。
下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!#include#include#define MAXLINE20fun(char*pstr[6]){int i,j;char*p;for(i=0;i/**********found**********/for(j=i+1,j{if(strcmp(*(pstr+i),;*(pstr+j))>0){p=*(pstr+i);/**********found**********/*(pstr+i)=pstr+i;*(pstr+j)=p;}}}}main(){int i;char*pstr[6],str[6][MAXLINE];for(i=0;iprintf("\nEnter6string(1string at each line):\n");for(i=0;ifun(pstr);printf("The strings after sorting:\n");for(i=0;i}
以下选项中正确的语句组是( )。
假定整数数列中的数不重复,并存放在数组中。给定程序MODII.C中函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#define N 20
int fun(int *a,int n,int x)
{int p=0,i;
a[n]=x;
while(x!=a[p])
p=p+1;
/**********found**********/
if(P==n) return -1;
else
{for(i=p;i
有以下程序:#includemain( ){int i,array[6]={1,5,0,4};for(i=0;iprintf(″%d″,array[i]);printf(″\n″);}程序运行后的输出结果是( )。
下列叙述中错误的是( )。
以下是if语句的基本形式: (表达式)语句 其中“表达式”( )。
有以下程序: #includestdio.h int fun(int X) { int P; if(x==0 || x==1) return(3); P=x—fun(x一2); return P; } main() { printf(“%d\n”,fun(7)); }程序执行后的输出结果是( )。
数据库应用系统中的核心问题是( )。
下列叙述中正确的是( )。
设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。
设有定义语句:double x=123.456:则语句printf("%6.2f,%3.0f\n",x,x);的输出结果是( )。