内容发布更新时间 : 2024/12/23 11:29:43星期一 下面是文章的全部内容请认真阅读。
avg =
main( )
{ int i; a[5]={2,4,6,8,10}; float mean;
mean=average(a,5);
printf(“mean=% f \\n”,mean); }
第五章 指针
程序填空题
F1下列程序的功能是:将一个数字字符串转换为一个整数。例如,有字符串“-1234567”程序将它转换为正整数1234567。 #include
if(p[i]=='+'||p[i]=='-') i=1; else i=0;
while(p[i]!='\\0') {
num*=10; num+=p[i]-48; i++; }
num = sign*num; return(
void main() { char s[9]; long n;
printf(\
16
gets(s); n=fs(s);
printf(\}
F2.列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的字符一次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串为:aBcdeFgh。 #include
void fun(char *p,char *q,char *c)
{int k=0; while(*p||*q) {if (*p小于等于*q)
c[k]=*q;
else c[k]=*p; if (*p) p=p+k; if (*q) ; k++; } }
main()
{char a[10]=\
printf(\ printf(\ printf(\}
F3.下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AAaaBBb123CCccccd,则应该输出结果:upper=6,lower=8。 #include
void fun (char *s,int *a, int *b) { while(*s)
{ if (*s大于等于'A' && *s小于等于'Z') (*a)++; if (*s大于等于'a' && *s小于等于'z') (*b)++; ; } }
main()
{ char s[100];int upper=0,lower=0;
17
printf(\
printf(\ }
N4.以下程序的功能是将磁盘文件a.dat中的10个整数读入并按升序排序。 void sort(int *p,int n) {
int i,j,t;
for(i=0;i小于n-1;i++) for(j=i+1;j小于n;j++) if(p[i] 大于p[j])
{t=p[i];
;p[j]=t;} }
void main() {
int a[10],i,j,t; FILE *fp;
fp=fopen(\ for(i=0;i小于10;i++)
fscanf(fp,\ fclose(fp);
for(i=0;i小于10;i++) printf(\}
R5、设有以下定义和语句:
int a[3][2]={10,20,30,40,50,60},(*p)[2]; p=a;
(*p)[2]是<指针>(两个汉字),*(*(p+2)+1)的值是<60>。
F6、下面的程序的功能是:利用指针统计一个字符串中,字母、空格、数字
及其它字符的个数,请填空。 #include
{ int alpha,space,digit,other; char *p,s[80];
alpha=space=digit=other=0; printf(“input string:\\n”);
18
gets(s);
for(p=s;*p!=’\\0’;p++)
if((*p大于等于’a’&&*p小于等于’z’)|| (*p大于等于’A’&&*p小于等于’Z’))alpha++;
else if(*p<==’ ’>)space++; else if(*p于’9’)digit++;
else other++;
printf(“alpha:%dspace:Yigit:%dother:%d\\n”,
alpha,space,digit,other);
R7.设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf(\k>); printf(\*k>);
F8.fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。 #include
for(row=0;row小于N;row++)
{for(max=a[row][0],col=1;col小于N;col++) if(max小于 a[row][col])
else if(min大于max) min=max; }
return
F9.函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。
#include
int sstrcmp(char *s,char *t) {while(*s&&*t&&*s==<*t>) {s++;t++; } return <*s-*t>;; }
F10、下面的程序是将无符号型的十六进制数构成的字符串转换为十进制整数,
19
大于等于’0’<&&>*p小于等
请填空。 main()
{char *t,a[5]; int m; gets(a); t=a;
m=*t-'0';
while(<*(++t)>!='\\0') m=m*16+<*t>-’\\0’; printf(“%d\\n”,m); }
第六章 预编译、结构体与共用体
程序填空题
R1.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是<22>(TC环境),
double ave; }a;
F2 以下程序的功能是利用结构体变量求解两个复数之积(3+4i)×(5+6i),请将程序补充完整。 #include \struct complx {int real; int im; };
struct complx cmult (struct complx za,struct complx zb) {struct complx w;
w.real = za.real * zb.real - za.im * zb.im; w.im = za.real * zb.im + za.im * zb.real; return
void cpr (struct complx za,struct complx zb, struct complx z) {printf (\printf (\
20