C言語基礎プログラミングテーマ
14211 ワード
1入力されたnum文字の中から最も長い文字列を見つけ、パラメータポインタmaxを介してシリアルアドレスを返します(**を終了識別子とします).
2文字列のすべてのスペースを削除する関数を作成してください.
3文字列が返信文かどうかを判断し、もし、1を返し、そうでなければ0を返します.例えば、文字列LEVELは回文であり、文字列123312は回文ではない
4関数funを記述し、以下の式に基づいてsを計算し、計算結果を関数戻り値として返し、nがパラメータを介して伝達される.s=1+1/(1+2)+1/(1+2+3)+1/1+2+3+…n
5関数funを記述し、sが指す文字列のASCII値が奇数の文字を削除し、残りの文字がt指数群に新しい列を形成する機能を有する.
6 1次元配列のすべての同じ数を削除し、1つしか残っていないようにします.配列の数は小さい順に並べられ、関数は削除後の配列のデータ数を返します.
7入力された文字列には、アルファベットと番号のみが含まれることを規定します.文字列の先頭と末尾の番号を除いて、列の他の*番号をすべて削除する機能を持つ関数funを記述します.パラメータhは文字列の最初のアルファベットを指し、パラメータpは文字列の最後のアルファベットを指す.関数を記述する際にC言語で提供される文字列関数は使用できません.
8関数funを記述し、その機能は、3-n間のすべての素数の平方根の和を計算して出力することであり、入力100後にsum=14.874270として出力する
9関数funを作成してください.この関数の機能は、S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+...+(1+2^0.5+3^0.5+...n^0.5)を計算して出力します.20を入力すると、出力結果はS=534.18888884となります.
答え2:
10関数fun()を作成してください.s=(ln(1)+ln(2)+ln(3)+...+ln(m))0.5を計算する機能があります.C言語でlog(n)関数を呼び出してln(n)を求めることができる.例えば、mの値が20であればfun()関数の値は6.506583である.
#include
#include
#define MAX 100
void fun(char(*a)[81], int num, char **max)
{
int i = 0;
*max = a[0];
for (i = 0; i < num; i++)
if (strlen(*max) < strlen(a[i]))
*max = a[i];
}
int main()
{
char ss[10][81], *ps;
int n, i = 0;
printf(" :
");
gets(ss[i]);
puts(ss[i]);
while (!strcmp(ss[i], "****") == 0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n = i;
fun(ss, n, &ps);
printf("
max=%s
", ps);
printf("
");
}
2文字列のすべてのスペースを削除する関数を作成してください.
#include
void fun(char *str)
{
int i = 0;
char *p = str;
while (*p)
{
if (*p !=' ') //
str[i++] = *p;
p++;
}
str[i] = '\0'; //
}
int main()
{
char str[81] = "welcome to Beijing";
fun(str);
printf("%s
", str);
}
3文字列が返信文かどうかを判断し、もし、1を返し、そうでなければ0を返します.例えば、文字列LEVELは回文であり、文字列123312は回文ではない
#include
int fun(char *str)
{
int i, n = 0, fg = 1;
char *p = str;
while (*p)
{
n++;
p++;
}
for (i = 0; i < n / 2; i++)
{
if (str[i] != str[n - 1 - i])
{
fg = 0;
break;
}
}
return fg;
}
int main(){
char str1[256] = "LEVEL";
char str2[256] = "123312";
if (fun(str1))printf("YES
");
else printf("NO
");
if (fun(str2))printf("YES
");
else printf("NO
");
}
4関数funを記述し、以下の式に基づいてsを計算し、計算結果を関数戻り値として返し、nがパラメータを介して伝達される.s=1+1/(1+2)+1/(1+2+3)+1/1+2+3+…n
float fun(int n)
{
int i, s1 = 0;
float s = 0.0;
for (i = 1; i <= n;i++)
{
s1 = s1 + i; //
s = s + 1.0 / s1; //
}
return s;
}
5関数funを記述し、sが指す文字列のASCII値が奇数の文字を削除し、残りの文字がt指数群に新しい列を形成する機能を有する.
void fun(char *s, char t[])
{
int i, j = 0, n;
n = strlen(s);
for (i = 0; i < n; i++)
{
if (s[i] % 2 == 0)
{
t[j] = s[i];
j++;
}
}
t[j] = '\0';
}
6 1次元配列のすべての同じ数を削除し、1つしか残っていないようにします.配列の数は小さい順に並べられ、関数は削除後の配列のデータ数を返します.
#include
int fun(int a[],int n)
{
int i,j=1;
for(i=1;iif(a[j-1]!=a[i]) // ,
a[j++]=a[i];
}
return j; //
}
void main(){
int arr[19]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10};
int res = 0;
res = fun(arr,19);
printf("%d
",res);
}
7入力された文字列には、アルファベットと番号のみが含まれることを規定します.文字列の先頭と末尾の番号を除いて、列の他の*番号をすべて削除する機能を持つ関数funを記述します.パラメータhは文字列の最初のアルファベットを指し、パラメータpは文字列の最後のアルファベットを指す.関数を記述する際にC言語で提供される文字列関数は使用できません.
#include
void fun(char *a,char *h,char *p)
{
int i=0;
char *q=a;
while(qwhile(qif(*q!='*') {
a[i]=*q;
i++;
}
q++;
}
while(*q)
{
a[i]=*q;i++;q++;
}
a[i]='\0';
printf("%s
",a);
}
void main(){
char str[256]="****A*BC*DEF*G*******";
fun(str,str+4,str+14);
}
8関数funを記述し、その機能は、3-n間のすべての素数の平方根の和を計算して出力することであり、入力100後にsum=14.874270として出力する
#include
#include
double fun(int n)
{
int m,k,i;
double s=0.0;
for(m=3;m<=n;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
s+=sqrt(m);
}
return s;
}
void main(){
int n=100;
printf("%f
",fun(n));
}
9関数funを作成してください.この関数の機能は、S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+...+(1+2^0.5+3^0.5+...n^0.5)を計算して出力します.20を入力すると、出力結果はS=534.18888884となります.
#include
#include
double fun(int n)
{
int i;
double s=0.0,s1=0.0;
for(i=1;i<=n;i++)
{
s1=s1+pow(i,0.5);
s=s+s1;
}
return s;
}
void main(){
int n=20;
printf("%f
",fun(n));
}
答え2:
#include
#include
double fun(int n)
{
double sum=1.0;
double temp=1.0;
for(int i=2;i<=n;i++)
{
temp=1.0;
for(int j=2;j<=i;j++)
temp+=pow(j,0.5);
sum+=temp;
}
return sum;
}
void main(){
int n=20;
printf("%f
",fun(n));
}
10関数fun()を作成してください.s=(ln(1)+ln(2)+ln(3)+...+ln(m))0.5を計算する機能があります.C言語でlog(n)関数を呼び出してln(n)を求めることができる.例えば、mの値が20であればfun()関数の値は6.506583である.
#include
#include
double fun(int m)
{
int i;
double s=0.0;
for(i=1; i<=m; i++)
s=s+ log(i); // s=ln(1)+ln(2)+ln(3)+…+in(m)
s=sqrt(s); // s
return s;
}
void main(){
int n=20;
printf("%f
",fun(n));
}