本系列資料由"韜略宏智" 授權發布,任何網站不得轉載,否則追究法律責任。
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所指的內存*/
}
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |