本系列资料由"韬略宏智" 授权发布,任何网站不得转载,否则追究法律责任。
1.填空题
下列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。例如,若输入:
I am a student to take the examination
则应输出:I aM A studenT tO takE thE examinatioN
试题程序:
#include
#include
#include
#include
void fun(char *p)
{
int k=0;
for(;*p;p++)
if(k)
{
if(*p==' ')
{
【1】;
【2】=toupper(*(p-1));
}
}
else
k=1;
}
main()
{ char chrstr[64];
int d;
printf("\nplease enter an English sentence within 63 letters:");
gets(chrstr);
d=strlen
3.编程题
请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
void fun(int *a,int *n)
{
}
main()
{
int aa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;k<n;k++)
if((k+1)%10==0)
printf("\n");
else printf("%5d,",aa[k]);
}
【答案】
void fun(int *a,int *n)
{ int i,j=0;
for(i=2;i<1000;i++)
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;
}
【考点】数组、for循环语句、if条件语句、查找法、参数传递。
【解析】
void fun(int*a,int*n)
{
int i ,j=0;
for(i=2;i<1000;i++)/*遍历1到1000以内的所有整数*/
if((i%7==0 ||i%11==0)&&i%77 !=0)
/*查找能被7或11整除、但不能同时被7和11整除的所有整数。注意:用求模操作符“%”进行整除运算,而不是除号操作符“/”;用“==”表示相等关系,而不是等号“=”;用“||”表示或者关系。用“&&”表示并且关系*/
a[j++]=i;/*把查找到的整数保存到形参数组a中1*/
*n=j;/*把数组a中数组元素的个数赋给形参指针n所指的内存*/
}
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |