c语言.docx
- 文档编号:10125635
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:25
- 大小:26.14KB
c语言.docx
《c语言.docx》由会员分享,可在线阅读,更多相关《c语言.docx(25页珍藏版)》请在冰豆网上搜索。
c语言
1.程序修改题
给定程序中,函数fun的功能是:
求整数x的y次方的低3位值。
例如,整数5的6次方为15625,此值的低3位值为625。
答案:
(1)将for(i=1;i for(i=1;i<=y;i++)或for(i=1;i (2)将t=t/1000;改为: t=t%1000;或t%=1000; 2.程序修改题 下列给定程序中,计算如下公式的值: t= 函数fun的功能是: 根据整型形参m的值,计算上面公式。 答案: (1)将for(k=2;k for(k=2;k<=m;k++)或for(k=2;k (2)将c-=1/(k*k);改为: c-=1.0/(k*k); 3.程序修改题 下列给定程序中,函数fun的功能是: 将s所指字符串中最后一次出现的s1所指子串替换成s2所指子串,所形成的新串放在str所指的数据中。 在此处,要求s1和s2所指字符串的长度相同。 例如,当s所指字符串中的内容为abcdabfabc,s1所指子串中的内容为ab,s2所指子串中的内容为99时,则在str所指的数组中的内容为abcdabf99c。 答案: (1)将voidfun(char*s,s1,s2,str)改为: voidfun(char*s,char*s1,char*s2,char*str) (2)将while(str)改为: while(*str) 4.程序修改题 给定程序中,函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值,然后输出主对角线元素之和。 请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使其能得出正确的结果。 答案: (1)填sum=0; (2)将scanf("%d",a[i][j]);改为: scanf("%d",&a[i][j]); 5.程序修改题 给定程序中,fun函数的功能是: 求出以下分数序列的前n项之和。 2/1、3/2、5/3、8/5、13/8、21/13、……和值通过函数值返回main函数。 例如,若n=5,则应输出: 8.391667。 答案: (1)将fun(intn)改为: doublefun(intn) (2)将c=a;a+=b;b+=c;改为: c=a;a+=b;b=c; 6.程序修改题 假定整数数列中的数不重复,并存放在数组中。 给定程序中,函数fun的功能是: 删除数列中值为x的元素变量,变量n存放的是数列中元素的个数。 答案: (1)将if(P==n)return-1;改为: if(p==n)return-1; (2)将a[i+1]=a[i];改为: a[i]=a[i+1]; 7.程序修改题 给定程序中,函数fun的功能是: 在字符串的最前端加入n个*号形成新串,并且覆盖原串。 注意: 字符串的长度最长允许为79。 答案: (1)将s=p;改为: p=s; (2)将while(*p);改为: while(*p++); 8.程序修改题 给定程序中,函数fun的功能是: 计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。 其中x和y的值不等,z和y的值不等。 例如,当x的值为9、y的值为11、z的值为15时,函数值为-3.50。 答案: (1)将FU(m,n)(m/n)改为: FU(m,n)((m)/(n)) (2)将Return(Value);改为: return(value); 9.程序修改题 给定程序中,函数fun的功能是: 给一维数组a输入任意4个整数,并按下例的规律输出。 例如,输入1、2、3、4程序运行后将输出以下方阵: 4123 3412 2341 1234 答案: (1)将voidfun(inta)改为: voidfun(inta[]) (2)将aa[j]=a[j-1];改为: a[j]=a[j-1]; 10.程序修改题 给定程序中,函数fun的功能是: 统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。 例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。 答案: (1)将if(t=0)改为: if(t==0) (2)将zero=count改为: *zero=count 11.程序修改题 给定程序中,函数fun的功能是: 先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。 例如,当s所指的字符串为: “ABCDE”时,则t所指的字符串应为: “EDCBAABCDE”。 答案: (1)将inti;改为: inti,sl; (2)将t[i]=s[sl-i];改为: t[i]=s[sl-i-1];12.程序修改题 给定程序中函数fun的功能是: 判断一个整数是否是素数,若是返回1,否则返回0。 在main()函数中,若fun返回1输出YES,若fun返回0输出NO! 。 答案: (1)将k++改为: k++; (2)将if(m=k)改为: if(m==k) 13.程序修改题 给定程序中函数fun的功能是: 统计字符串中各元音字母(即: A、E、I、O、U)的个数。 注意,字母不分大、小写。 例如: 若输入: THIsisaboot,则输出应该是: 1、0、2、2、0。 答案: (1)将num[i]=0;改为: num[k]=0; (2)将switch(s)改为: switch(*s) 14.程序修改题 给定程序中,函数fun的功能是: 读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码升序排序后输出。 例如,若输入: edcba,则应输出: abcde。 答案: (1)将for(i=strlen(t);i;i--)改为: for(i=strlen(t)-1;i;i--) (2)将if(t[j] if(t[j]>t[j+1]) 15.程序修改题 给定程序中,函数fun的功能是: 由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。 例如,n=8时,输入: 193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763,所得平均值为: 195.838745,在平均值以上的实数个数应为: 5 答案: (1)将intj,c=0,floatxa=0.0;改为: intj,c=0;floatxa=0.0; (2)将if(x[j]=>xa)改为: if(x[j]>=xa) 16.程序修改题 给定程序中,函数fun的功能是: 在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 例如,调用fun函数之前给字符串输入: ABCDeFGH,调用后字符串中的内容为: eABCDFGH。 答案: (1)将q=p+i改为: q=p+i; (2)将While(q>p)改为: while(q 17.程序修改题 给定程序中,函数fun的功能是: 将s所指字符串中的字母转换为按字母序列的后续字母(但Z转换为A、z转换为a),其他字符不变。 答案: (1)将while(*s! ='@')改为: while(*s! ='\0') (2)将(*s)++;改为: s++ 18.程序修改题 下列给定程序中,函数fun()的功能是: 通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。 例如变量a中的值原为8,b中的值原为3;程序运行后a中的值为3,b中的值为8。 答案: (1)将t=x;x=y;改为: t=*x;*x=y; (2)将return(y);改为: return(t); 19.程序修改题 N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是: 利用折半查找算法查找整数m在数组中的位置。 若找到,则返回其下标值;反之,则返回-1。 折半查找的基本算法是: 每次查找前先确定数组中待查的范围: low和high(low 如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。 直到low>high,查找结束。 答案: (1)将voidfun(inta[],intm)改为: intfun(inta[],intm) (2)将elseif(m>=a[mid])改为: elseif(m>a[mid]) 20.程序修改题 下列给定程序中,函数fun()的功能是: 根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。 例如,若输入2,则输出 12 24 输入4,则输出 1234 2468 36912 481216 答案: (1)将fun(int**a,intm)改为: voidfun(int(*a)[M],intm) (2)将a[j][k]=k*j;改为: a[j][k]=(k+1)*(j+1); 21.程序修改题 已知一个数列从0项开始的前3项: 0、0、1,以后的各项都是其相邻的前3项之和。 下列给定的程序中,函数fun()的功能是: 计算并输出该数列前n项的平方根之和sum。 N的值通过形参传入。 例如,当n=10时,程序的输出结果应为23.197745。 答案: (1)将fun(intn)改为: doublefun(intn) (2)将returnsum改为: returnsum; 22.程序修改题 下列给定程序中,函数fun()的功能是: 从N个字符串中找出最长的那个串,并将其地址作为函数值返回。 各字符串在主函数中输入,并放入一个字符串数组中。 答案: (1)将fun(char(*sq)[N])改为: char*fun(char(*sq)[M]) (2)将returnsq;改为: returnsp; 23.程序修改题 下列给定程序中,函数fun()的功能是: 用递归算法计算斐波拉契级数列中第n项的值。 从第一项起,斐波拉契级数序列为1、1、2、3、5、8、13、21、……例如,若给n输入7,该项的斐波拉契级数值为13。 答案: (1)将switch(g);改为: switch(g) (2)将case1;case2: return1;改为: case1: case2: return1; 24.程序修改题 下列给定程序中,函数fun()的功能是: 用冒泡法对6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使其能得出正确的结果。 答案: (1)将fun(char*pstr[6])改为: voidfun(char*pstr[6]) (2)将if(strcmp(*(pstr+i),pstr+j)>0)改为: if(strcmp(*(pstr+i),*(pstr+j))>0) (3)将*(pstr+i)=pstr+j;改为: *(pstr+i)=*(pstr+j); 25.程序修改题 下列给定程序中,函数fun()的功能是: 首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部。 例如,当a所指字符串中的内容为abcdefg,b所指字符串中的内容为1234时,c所指数组中的内容应该为a4b3c2d1efg;而当a所指字符串中的内容为1234,b所指字符串中的内容为abcdefg时,c所指数组中的内容应该为1g2f3e4dcba。 答案: (1)将while(i>j)改为: while(i (2)将*c=o;改为: *c='\0'; 26.程序修改题 在给定程序中,函数fun()的功能是: 利用插入排序法对字符串中的字符按从大到小的顺序进行排序。 插入法的基本方法是: 先对字符串中的头两个元素进行排序,然后把第3个字符插入到前两个字符中,插入后前3个字符依然有序;再把第4个字符插入到前3个字符中,待排序的字符串已在主函数中赋予。 答案: (1)将while((j>=0)||(ch>aa[j]))改为: while((j>=0)&&(ch>aa[j])) (2)将aa[j]=ch;改为: aa[j+1]=ch; 27.程序修改题 给定程序中,函数fun()的功能是: 找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 答案: (1)将if(i%k! =0)改为: if(i%k==0) (2)将if(k if(k>=i) 28.程序修改题 下列给定程序中,函数fun()的功能是: 根据整型参数m,计算如下公式的值: y=1/(100×100)+1/(200×200)+1/(300×300)+… +1/(m×m) 例如,若m=2000,则应输出0.000160。 答案: (1)将fun(intm)改为: doublefun(intm) (2)将for(i=100,i<=m,i+=100)改为: for(i=100;i<=m;i+=100) 29.程序修改题 下列给定程序中,函数fun()的功能是: 将字符串p中所有字符复制到字符串b中,要求每复制3个字符之后插入一个空格。 例如,在调用fun()函数之前给字符串a输入ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABCDEFGHIJK。 答案: (1)将i=1;改为: i=0; (2)将while(i<3||*p)改为: while(i<3&&*p) (3)将b[k]='';改为: b[k++]=''; 30.程序修改题 在给定程序中,函数fun()的功能是: 输入的两个数中较小的数。 例如: 输入5、10,结果为minis5。 答案: 将intfun(intx,y)改为: intfun(intx,inty) 31.程序修改题 下列给定程序中,函数fun()的功能是: 应用递归算法求某数a的平方根。 求平方根的迭代公式如下: 例如,2的平方根为1.414214。 答案: (1)将fun(doublea,doublex0)改为: doublefun(doublea,doublex0) (2)将if(fabs(x1-x0)>0.00001)改为: if(fabs(x1-x0)>=0.00001) 32.程序修改题 下列给定程序中,函数fun()的功能是: 根据输入的3个边长(整型值),判断能否构成三角形? 若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。 答案: (1)将return1;改为: return3; (2)将elsereturn3;改为: elsereturn1; 33.程序修改题 在给定程序中,函数fun()的功能是: 求k! (k<12),所有阶乘的值作为函数值返回。 例如: 若k=10,则应输出3628800。 请改正程序中的错误,使其能得出正确的结果。 答案: (1)将ifk>0改为: if(k>0) (2)将elseif(k=0)改为: elseif(k==0) 34.程序修改题 假定整数不重复数列{97,2,7,1,2,4,-1}中的数存放在数组s中。 下列给定程序中,函数fun的功能是: 删除数列中值为a的元素,同时将其他元素前移。 Sum中存放的是数列中元素的个数。 答案: 将x[j+1]=x[j]改为: x[j]=x[j+1]; 35.程序修改题 在给定程序中,函数fun()的功能是: 利用插入排序法对字符串中的字符按从小到大的顺序进行排序。 插入法的基本方法是: 先对字符串中的头两个元素进行排序,然后把第3个字符插入到前两个字符中,插入后前3个字符依然有序;再把第4个字符插入到前3个字符中,待排序的字符串已在主函数中赋予。 答案: 将c=aa[i];改为: ch=aa[i]; 36.程序修改题 下列给定程序中,函数fun()的功能是: 输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。 请改正程序中的错误,使其能得出正确的结果。 答案: (1)将fun(doubleb,doublex0)改为: doublefun(doubleb,doublex0) (2)将if(abs(x1-x0)>=1e-6)改为: if(fabs(x1-x0)>=1e-6) 37.程序修改题 在给定程序中,函数fun()的功能是: 将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中。 高位仍在高位,低位仍在低位。 例如,当s中的数为87653142时,t中的数为8642。 答案: (1)将intd;改为: longd; (2)将if(d%2=0)改为: if(d%2==0) (3)将s\=10;改为: s/=10; 38.程序修改题 给定程序中,函数fun()的功能是: 删除字符串s中所有空白字符(包括Tab字符、回车符及换行符)。 输入字符串时用'#'结束输入。 答案: 将c[t]="\0";改为: c[t]='\0'; 39.程序修改题 在给定程序中,函数fun的功能是找出100~n(不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,其个数作为函数值返回。 答案: (1)将k=n;改为: k=i; (2)将s[j]=i;改为: s[j++]=i; 40.程序修改题 下列给定程序中,函数fun()的功能是根据整型形参n,计算如下公式的值: A1=1,A2=1/(1+A1),A3=1/(1+A2),…, An=1/(1+A(n-1)) 例如,若n=10,则应输出0.617977。 答案: (1)将intfun(intn)改为: floatfun(intn) (2)将for(i=2;i for(i=2;i<=n;i++) 41.程序修改题 下列给定程序中,函数fun()的功能是: 计算整数n的阶乘。 答案: (1)将result*=--n;改为: result*=n--; (2)将return;改为: returnresult; 42.程序修改题 给定程序中,函数fun()的功能是: 使数组中的元素的值增加10倍。 答案: 将printf("%3d",m[j]*10);改为: printf("%3d",m[j]=m[j]*10); 43.程序修改题 在给定程序中,函数fun()的功能是: 从3个红球、5个白球、6个黑球中任意取出8个作为一组进行输出。 在每组中,可以没有黑球,但必须要有红球和白球。 组合数作为函数值返回。 正确的组合数应该是15。 程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。 答案: (1)将for(i=0;i<=3;i++)改为: for(i=1;i<=3;i++) (2)将if(k>=1&&k<=6)改为: if((k>=1&&k<=6)&&(i! =0)&&(j! =0)||(k==0)) 44.程序修改题 下列给定程序中,函数fun的功能是: 从整数1到50之间,选出能被3整除且有一位上的数是5的数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。 规定,函数中a1放个位数,a2放十位数。 答案: (1)将fun(int*b);改为: intfun(int*b) (2)将for(j=10;j<=50;j++)改为: for(j=1;j<=50;j++) (3)将returnj;改为: returni; 45.程序修改题 在给定程序中,函数fun()的功能是,用下面的式子求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止: π/4≈1-1/3+1/5-1/7+… 例如,程序运行后,输入0.0001,则程序输出3.1414。 答案: (1)将while(t>=num)改为: while(fabs(t)>=num) (2)将t=s%n;改为: t=s/n; 46.程序修改题 给定程序中,函数fun()的功能是: 求S的值。 设 S=(22/(1*3))*(42/(3*5))*(62/(5*7))*…*(2k)2/ ((2k-1)*(2k+1)) 例如,当k为10时,函数的值应为1.533852。 答案: (1)将fun(intk)改为: doublefun(intk) (2)将returns改为: returns; 47.程序修改题 下列给定程序中函数fun的功能是: 传入一个整数n,计算如下公式的值: 例如,若输入5,则应输出-0.283333。 答案: (1)将s=1.0-1/i;改为: s=s-1.0/i; 或: s-=1.0/i;或: s-=(double)1/i (2)returns; 48.程序修改题 在给定程序中建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。 函数fun()的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。 答案: (1)将fun(NODE*h)改为: intfun(NODE*h) (2)将p=h->next;改为: p=p->next 49.程序修改题 下列给定程序中,函数fun()的作用是: 将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。 例如,若输入“edS,dAd”,则输出“EDS,DAD”。 答案: (1)将charfun(chartt[])改为: char*fun(chartt[]) (2)将if((tt[i]>='A')&&(tt[i]<='Z'))改为: if((tt[i]>='a')&&(tt[i]<='z')) 50.程序修改题 下列给定程序中,函数fun()的功能是,根据以下公式求π的值,并作为函数值返回。 π/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9? ? ? ? ? 例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。 答案: (1)将t=1;改为: t=1.0; (2)将while(t>eps)改为: while(t>=eps) (3)将return(s);改为: return(2*s);或return(s*2); 51.程序修改题 在给定程序中,函数fun()的功能是: 求出两个数的最大公约数,并作为函数值返回。 例如,若给num1和num2输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出最大公约数为27。 答案: (1)将{t=a;b=a;a=t;}改为: {t=a;a=b;b=t;} (2)将return(a);改为: return(b); 52.程序修改题 下列给定程序中,函数fun的功能是: 计算n的5次方的值(规定2 答案: (1)将b=0;改为: b=1; (2)将c=1;改为: c=0;(3)将c=c/10;改为: b=b/10; 53.程序修改题 下列给定程序中函数fun()的功能是: 从n个学生的成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言