題庫的操作題

来源:http://www.cnblogs.com/yjh123/archive/2016/06/17/5576117.html
-Advertisement-
Play Games

/*編寫函數,實現從鍵盤上輸入一個小寫字母,將其轉化為大寫字母。*/ /* #include<stdio.h> int zhuanhua(char s); void main(){ char s; printf("請輸入一個字元:"); scanf("%c",&s); printf("轉化前為:%c ...


/*編寫函數,實現從鍵盤上輸入一個小寫字母,將其轉化為大寫字母。*/ 
/* 
#include<stdio.h> 
int zhuanhua(char s); 
void main(){ 
    char s; 
    printf("請輸入一個字元:"); 
    scanf("%c",&s); 
    printf("轉化前為:%c\n",s); 
    s=zhuanhua(s); 
    printf("轉化後為:%c\n",s); 

int zhuanhua(char s){ 
    char S; 
    S=s-32; 
    return S; 

*/ 
/*計算並輸出500以內最大的10個能被13或17整除的自然數之和*/

/* 
#include<stdio.h> 
int jisuan(int n);

void main(){ 
    int n=500; 
    printf("和是%d\n",jisuan(n)); 

int jisuan(int n){ 
    int i,sum=0; 
    for(i=1;i<n;i++) 
        if(i%13==0||i%17==0) 
            sum+=i; 
    return sum; 

*/ 
/*將字元串str中的小寫字母全部轉換成大寫字元串。函數原型可聲明為:“void  toUpperCase( char  str[ ]) ; ”*/ 
/* 
#include <stdio.h> 
#include<string.h> 
#define N 10 
void  toUpperCase( char  str[ ]);

void main(){ 
    char str[N]; 
    printf("請輸入一個字元串:"); 
    gets(str); 
    toUpperCase(str); 
    printf("交換後的字元串為:"); 
    puts(str); 
   


void  toUpperCase( char  str[ ]){ 
    int i; 
    for(i=0;;i++){ 
        if(str[i]!='\0') 
            str[i]=str[i]-32; 
        else 
            break; 
    } 

*/



【編寫函數,將一個字元串的全部有效元素逆置。函數原型可聲明為“void reverseStr( char * str ) ;”,參數str為指向字元串的指針。】
答案:
程式代碼如下:
#include <stdio.h>
#include <string.h>

void reverseStr( char *str );

int main( )
{
char str[100];
puts(“請輸入字元串:”);
gets(str);
reverseStr( str );
puts(“逆轉後的字元串:”);
puts( str );
return 0;
}

void reverseStr( char *str )
{
char tmp;
char *pi, *pj;
pi = str;
pj = str + strlen( str ) – 1;
while (pi < pj )
{ tmp = *pi; *pi = *pj; *pj = tmp;
++pi; --pj;
}
}

<br/>

1)Fill the blanks of the following program. Function:output by the character w, such as W-shaped structure into a graphical.
w ww w
w w w w
w w w w
w w w w
ww ww
#include <stdio.h>
void draw(int n)

int i, j, k, r, m;
for(i=1; ① ;i++)
{
for(j = 1; j <= 2; j++)
{
for(r = 1; r < i; r++) printf(" ");
printf("w");
for(k = 1; ② ; k++) printf(" ");
printf("w");
for(m = 1; m < i; m++) printf(" ");
}
③ ;
}
}
#include <conio.h>
int main( )
{
int n;
printf("input a number:");
④ ;
draw(n);
return 0;
}
答案:①i <= n;②k<=2*(n-i);③ printf(“\n”);④scanf(“%d”, &n);
<br/>

編寫函數,將一個整型數組的全部元素逆序存儲,即若原來數組元素分別為12345,逆序存儲後數組各元素變為54321。函數原型可聲明為“void reverse( int * p , int n );”,參數p為指向數組的指針,n為數組中的元素個數。
答案:
程式代碼如下:
#include <stdio.h>

void reverse( int *p, int n );

int main( )
{
int arr[10];
int i;
printf(“請輸入10個整數:”);
for(i=0; i<10; i++)
scanf(“%d” , &arr[i]);
reverse ( arr, 10); 
printf(“逆序存儲後:”);
for(i=0; i<10; i++)
printf(“%5d” , arr[i]);
printf(“\n”);
return 0;
}

void reverse( int *p, int n )
{
int *pi, *pj;
int tmp;
pi = p;
pj = p + n – 1;
while ( pi < pj )
{
tmp = *pi; *pi = *pj; *pj = tmp;
pi++; pj--;
}
}

<br/>

編寫程式,用有參有返回值函數實現判斷三個數是否能構成三角形。函數原型可聲明為:“int isTriangle( double a, double b, double c );”,其中,a,b,c為三角形的三條邊,返回值為0或1,0代表不能構成三角形,1代表能構成三角形。請在主函數中調用該函數完成程式的功能。
答案:
程式代碼如下:
#include <stdio.h>
int isTriangle( double a, double b, double c);//函數聲明

int main( )
{
double ea, eb, ec;//三角形的三條邊
int result; //是否是三角形的判斷結果
printf(“Please input the three edges of a triangle:”);
scanf(“%lf%lf%lf”, &ea, &eb, &ec);
result = isTriangle( ea, eb, ec ); //函數調用
if( 0 == result )
printf(“這組邊長不能構成三角形\n”);
else
printf(“這組邊長可以構成三角形\n”);
return 0;
}

int isTriangle( double a, double b, double c ) //函數定義
{
if( a > 0 && b > 0 && c > 0 && a + b > c && b + c > a && c + a > b )
//三角形任意邊長大於0,且 任意兩邊之和大於第三邊
return 1; //可以構成三角形
else
return 0; //不能構成三角形
}
程式運行結果如下:

<br/>

(2)Write a program that takes an integer keyed in from the terminal and extracts and displays each digit of the integer in English. So, if the user types 932, the program should display “ nine three two”.
答案:
程式代碼如下:
#include <stdio.h> 
int main( )
{
int num;
int iDigit; //每一位上的數字
printf(“Pleasse input an integer:”);
scanf(“%d”, &num);
while ( num ) //當該數不為0時,繼續提取其個位上的數字
{
iDigit = num % 10; //提取個位
switch ( iDigit )
{
case 0: printf(“Zero “); break;
case 1: printf(“One “); break;
case 2: printf(“Two “); break;
case 3: printf(“Three “); break;
case 4: printf(“Four “); break;
case 5: printf(“Five “); break;
case 6: printf(“Six “); break;
case 7: printf(“Seven “); break;
case 8: printf(“Eight “); break;
case 9: printf(“Night “); break;
}
num /= 10; //去掉該數的個位
}
printf(“\n”);
return 0;
}

<br/>
rite a program that takes an integer keyed in from the terminal and extracts and displays each digit of the integer in English. So, if the user types 932, the program should display “ nine three two”.
答案:
程式代碼如下:
#include <stdio.h> 
int main( )
{
int num;
int iDigit; //每一位上的數字
printf(“Pleasse input an integer:”);
scanf(“%d”, &num);
while ( num ) //當該數不為0時,繼續提取其個位上的數字
{
iDigit = num % 10; //提取個位
switch ( iDigit )
{
case 0: printf(“Zero “); break;
case 1: printf(“One “); break;
case 2: printf(“Two “); break;
case 3: printf(“Three “); break;
case 4: printf(“Four “); break;
case 5: printf(“Five “); break;
case 6: printf(“Six “); break;
case 7: printf(“Seven “); break;
case 8: printf(“Eight “); break;
case 9: printf(“Night “); break;
}
num /= 10; //去掉該數的個位
}
printf(“\n”);
return 0;
}
<br />
(2)Write a program that takes an integer keyed in from the terminal and extracts and displays each digit of the integer in English. So, if the user types 932, the program should display “ nine three two”.
答案:
程式代碼如下:
#include <stdio.h> 
int main( )
{
int num;
int iDigit; //每一位上的數字
printf(“Pleasse input an integer:”);
scanf(“%d”, &num);
while ( num ) //當該數不為0時,繼續提取其個位上的數字
{
iDigit = num % 10; //提取個位
switch ( iDigit )
{
case 0: printf(“Zero “); break;
case 1: printf(“One “); break;
case 2: printf(“Two “); break;
case 3: printf(“Three “); break;
case 4: printf(“Four “); break;
case 5: printf(“Five “); break;
case 6: printf(“Six “); break;
case 7: printf(“Seven “); break;
case 8: printf(“Eight “); break;
case 9: printf(“Night “); break;
}
num /= 10; //去掉該數的個位
}
printf(“\n”);
return 0;
}

(3)Write a function to calculate the absolute value of x.
答案:
程式代碼如下:
#include <stdio.h>
double absoluteValue( double x );

int main( )
{
double x;
printf(“請輸入x:”);
scanf(“%lf”, &x);
printf(“Absolute Value of x is: %lf\n”, absoluteValue( x ) );

printf(“請輸入x:”); //第二次調用函數
scanf(“%lf”, &x);
printf(“Absolute Value of x is: %lf\n”, absoluteValue( x ) );
return 0;
}

double absoluteValue( double x )
{
if ( x > 0 )
return x;
else
return - x;
}

(4)從鍵盤輸入10個互不相同的整數,找出其中最小的元素將其與數組中的第一個元進行交換。
答案:
程式代碼如下:
#include <stdio.h>

void getMin( int a[ ], int n); //函數聲明

int main( )
{
int array[10];
int i;
printf(“請輸入10個互不相等的整數:”);
for ( i=0; i<10; ++i)
scanf(“%d”, &array[i]);

getMin( array , 10 ); //調用函數來實現功能

printf(“將最小值換到第1個元素後:”);
for ( i=0; i<10; ++i)
printf(“%5d”, array[i]);
printf(“\n”);
return 0;
}

void getMin( int a[ ], int n) //函數定義
{
int i;
int tmp;
int minid=0;
for( i=1; i<n; ++i)
if ( a [i] < a [minid] )
minid = i;
//將最小值換到第1個元素
tmp = a[0];
a[0] = a[minid];
a[minid] = tmp;
}


(5)有10本圖書,從鍵盤輸入每本圖書的價格後,找出價格最高的圖書並輸出其價格。
答案:
程式代碼如下:
#include <stdio.h>

double getMaxPrice( double a[ ], int n); //函數聲明

int main( )
{
double book[10];
int i;
int maxid;
printf(“請輸入10本圖書的價格:”);
for ( i=0; i<10; ++i)
scanf(“%lf”, &book[i]);

maxid = getMaxPrice ( book , 10 ); //調用函數來實現功能

printf(“最高書價:%.2lf\n” , book[maxid] );
return 0;
}

double getMaxPrice ( double a[ ], int n) //函數定義
{
int i;
int maxid =0;
for( i=1; i<n; ++i)
if ( a [i] > a [maxid] )
maxid = i;
return maxid;
}

(6)Writing a function to find the minimum subscript of element in an array ,and return the subscript to the function who calls it.
答案:
程式代碼如下:
#include <stdio.h>

int getMinid( int a[ ], int n); //函數聲明

int main( )
{
int array[10];
int i;
int minid;
printf(“請輸入10個整數:”);
for ( i=0; i<10; ++i)
scanf(“%d”, &array[i]);

minid = getMin( array , 10 ); //調用函數來實現功能

printf(“最小元素的下標:%d\n” , minid );
return 0;
}

int getMin( int a[ ], int n) //函數定義
{
int i;
int minid=0;
for( i=1; i<n; ++i)
if ( a [i] < a [minid] )
minid = i;
return minid; 
}
>

(7)從鍵盤輸入若幹整數(數據個數應小於20),其值在0至4的範圍內,用-1作為輸入結束的標誌。編程統計輸入的整數個數。
答案:
程式代碼如下:
#include <stdio.h>
int getCount( int a[ ], int n ); //函數聲明
int main( )
{
int array[20] ={0} ; //用來存儲最多20個整數
int c;
c = getCount( array , 20 );
printf(“輸入的有效數的個數為:%d\n”, c);
return 0;
}

int getCount( int a[ ], int n ) //函數定義
{
int tmp; //臨時存儲輸入的數
int count=0; //輸入的有效數的個數
printf(“請輸入若幹個0-4之間的整數(以一1結束輸入):”);
scanf(“%d” , &tmp);
while ( tmp != -1 && count <20 )
{
if ( tmp >=0 && tmp <=4 ) //在範圍之內
a[ count++] = tmp ; //將值轉存到數組對應元素中
scanf(“%d”, &tmp);//輸入下一個數
}
return count;
}

(8)編寫函數,將一個整型數組的全部元素逆序存儲,即若原來數組元素分別為1,2,3,4,5,逆序存儲後數組各元素變為5,4,3,2,1。函數原型可聲明為:“void reverse( int a[ ] , int n );”,參數a為數組,n為數組中的元素個數。
答案:
程式代碼如下:
#include <stdio.h>

void reverse( int a[ ], int n );

int main( )
{
int array[10]={0};
int i;
printf(“請輸入10個整數:”);
for( i=0; i<10; i++)
scanf(“%d”, &array[i]);
reverse( array, 10); //調用函數逆序存儲數組中的數據
printf(“逆序後的元素為:\n”);
for( i=0; i<10; i++)
printf(“%5d”, array[i]);
printf(“\n”);
return 0;
}

void reverse( int a[ ], int n )
{
int i;
int tmp;
for( i=0; i<n/2; ++i)
{
tmp = a[i]; a[i] = a[n-i-1]; a[n-i-1] = tmp;
}
}


(9)編寫函數,將一個十進位數轉換成一個二進位數(提示:將轉換後的二進位數各位的值依次存儲在一個一維數組中,要輸出時,只要逆序輸出這個數組各元素的值即可)。函數原型可聲明為:“int transformToBin( int dnum, int bin[ ] ) ;”,參數dnum是要轉換的十進位數,bin是存儲轉換後的二進位值的數組(逆序存儲的),返回值是bin數組中元素的個數。
答案:
程式代碼如下:
#include <stdio.h>

int transformToBin( int dnum, int bin[ ] ) ;

int main( )
{
int array[32]={0}; //保存轉換後的二進位數
int num; //待轉換的整數
int cc; //最後得到的二進位總共多少位
printf(“請輸入一個整數:”);
scanf(“%d”, &num);
cc = transformToBin( num, array ); //調用轉換函數
cc--; //往回退一個元素下標,使cc指向最後一個元素
for( ; cc>=0; cc-- ) //輸出轉換後的二進位數
printf(“%d”, array[cc]);
printf(“\n”);
return 0;
}

int transformToBin( int dnum, int bin[ ] )
{
int count = 0;
while ( dnum ) //當dnum還未轉換完畢 
{
bin[count++] = dnum % 2; //餘數保留到數組對應元素中
dnum /= 2; //數本身除2
}
return count;
}

(2)假設圓柱的底面積半徑為r(= 2.5),高為h(= 3.5),編寫求體積(體積=底面積*高)的程式。
答案:
假設圓柱的底面積半徑為r(= 2.5),高為h(= 3.5),編寫求體積(體積=底面積*高)的程式。
程式代碼如下:
#include <stdio.h>
#define PI 3.1415926
int main( )
{
double r = 2.5;
double h = 3.5;
double v=0;
v = (PI * r * r)*h;
printf(“v = %lf\n”, v);
return 0;
}

(11)編寫函數,將字元串str中的小寫字母全部轉換成大寫字元串。函數原型可聲明為:“void toUpperCase( char str[ ]) ; ”。
答案:
程式代碼如下:
#include <stdio.h>
#include <string.h>

void toUpperCase( char str[ ]);

int main( )
{
char str[100];
puts(“請輸入字元串:”);
gets(str);
toUpperCase ( str );
puts(“轉換後的字元串:”);
puts( str );
return 0;
}

void toUpperCase( char str[ ])
{
int i;
i = 0;
while ( str[i] != ‘\0’ )
{
if( str[i] >= ‘a’ && str[i] <= ‘z’ )
str[i] -= 32; //小寫字母轉換成大寫
++i;
}
}

(12)編寫函數,刪除字元串str中的所有ch字元。函數原型可聲明為“void deleteAll( char str[ ] , char ch ) ;”,參數str為待處理的字元串,ch為要刪除的字元。
答案:
程式代碼如下:
#include <stdio.h>
#include <string.h>

void deleteAll( char str[ ] , char ch );

int main( )
{
char str[100] , ch ;
puts(“請輸入字元串:”);
gets(str);
printf(“請輸入待刪除的字元:”);
ch = getchar( );
deleteAll ( str , ch );
puts(“刪除之後的字元串:”);
puts( str );
return 0;
}

void deleteAll( char str[ ] , char ch )
{
int oldi; //指向原str的
int newi; //指向刪除ch後的str
oldi = 0 ;
newi = 0;
while ( str[ oldi ] != ‘\0’ )
{
if( str[oldi] != ch ) //不是要刪除的字元
{
str[newi] = str[oldi]; //將其複製到新的字元串中
++newi; //新字元串增長一個元素
}
++oldi; //如果是要刪除的字元,則會預設被跳過
}
str[newi] = '\0'; //新字元串置結束標誌
}

(13)編寫函數,用字元ch2替換字元串str中的字元ch1(註意:要全部都替換掉)。函數原型可聲明為“void replaceAll( char str[ ], char ch1, char ch2 ) ;”。
答案:
程式代碼如下:
#include <stdio.h>
#include <string.h>

void replaceAll( char str[ ], char ch1, char ch2 );

int main( )
{
char str[100] , ch1 , ch2 ;
puts(“請輸入字元串:”);
gets(str);
printf(“請輸入要被替換的字元及用來替換的字元(中間不要用空格分隔):”);
ch1 = getchar( );
ch2 = getchar( );
replaceAll ( str , ch1, ch2 );
puts(“替換之後的字元串:”);
puts( str );
return 0;
}

void replaceAll( char str[ ], char ch1, char ch2 )
{
int i;
i = 0;
while ( str[i] != ‘\0’ )
{
if( str[i] == ch1 )
str[i] = ch2;
++i;
}
}

(14)編寫程式,統計一個字元串中26個字母出現的次數(不區分大小寫)。函數原型可聲明為:“void countAlpha (char str[ ], int count[] );”,參數str為待處理的字元串,數組count長度為26,用於存放26個字母出現的次數。
答案:
程式代碼如下:
#include <stdio.h>
#include <string.h>

void countAlpha (char str[ ], int count[] );

int main( )
{
char str[100];
int count[26]={0};
int i;
puts(“請輸入字元串:”);
gets(str);
countAlpha ( str , count );
puts(“統計結果:”);
for( i=0; i<26; ++i) //輸出個數不為0的字母及其個數
if ( count[i] )
printf(“%c------%d\n”, i+’a’, count[i]);
return 0;
}

void countAlpha (char str[ ], int count[] )
{
int i;
i = 0;
while (str[i] != ‘\0’ )
{
if( str[i]>=’a’ && str[i] <= ‘z’)
++count[ str[i] – ‘a’ ];
else if( str[i]>=’A’ && str[i] <= ‘Z’)
++count[ str[i] – ‘A’ ];
++i;
}
}

(1)編寫程式輸出下列圖案 : 
*
***
*****
*******
答案:
#include <stdio.h>
int main( )
{
printf(“ *\n”);
printf(“ * * *\n”);
printf(“ * * * * *\n”);
printf(“ * * * * * * *\n”);
return 0;
}

(4).編寫程式,從鍵盤輸入兩個字元分別存放在變數x和y中,要求通過程式交換它們的值。
答案:
編寫程式,從鍵盤輸入兩個字元分別存放在變數x和y中,要求通過程式交換它們的值。
【程式代碼如下:】
#include <stdio.h>
int main( )
{
char x, y;
char tmp;
printf(“Input two characters:”);
scanf(“%c%c”, &x, &y);
printf(“Before swap: x=%c, y=%c\n”, x, y);
tmp = x;
x = y;
y = tmp;
printf(“After swap: x=%c, y=%c\n”, x, y);
return 0;
}

(5)Write a program to evaluate the polynomial shown here: for x = 2.55.
3x3-5x2+6.
答案:
程式代碼如下:
#include <stdio.h>
#include <math.h>
int main( )
{
double a=3, b=-5,c=2;
double x = 2.55;
double root1, root2;
double delt;
delt = b*b – 4*a*c;
root1 = ( -b + sqrt( delt ) ) / (2 * a) ;
root2 = ( -b - sqrt( delt ) ) / (2 * a) ;
printf(“The two roots are:\n”);
printf(“root1 = %lf\n root2 = %lf\n”, root1, root2);
return 0;
}

(1)編寫程式。功能:從讀入的整數數據中,統計大於零的整數個數和小於零的整數個數。用輸入零來結束輸入,程式中用變數i統計大於零的整數個數,用變數j統計小於零的整數個數。
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int num; //輸入的整數
int iCount = 0; //大於0的整數的計數變數
int jCount = 0; //小於0的整數的計數變數
printf(“請輸入多個整數:(以0結束輸入)”);
scanf(“%d”, &num);
while ( num ) // while ( num != 0 )
{
if ( num > 0 ) ++iCount;
else if ( num < 0 ) ++jCount;
scanf(“%d”, &num);
}
printf(“大於0的個數:%d\n”, iCount);
printf(“小於0的個數:%d\n”, jCount);
return 0;
}

(2)編寫程式。功能:以每行5個數來輸出300以內能被7或17整除的偶數,並求出其和。
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int n; //300以內的數
int count = 0; //滿足條件的數的統計變數
int sum = 0; //求和變數
for( n = 1; n <= 300; ++n)
{
if ( n % 2 == 0 && (n % 7 ==0 || n % 17 == 0) ) //是偶數,且能被7或17整除
{
sum += n; //求和
printf(“%5d”, n);//輸出n值
++count;
if( count % 5 == 0 ) //某行夠5個數了,則換行
printf(“\n”);
}
}
printf(“\n”);
return 0;
}

(3)Write a function called prime that returns 1 if its argument is a prime number and returns 0 otherwise.
答案:
程式代碼如下:
#include <stdio.h> 
#include <math.h>
int prime( int n ); //函數聲明

int main( )
{
int num;
int isPrime;
printf(“Please input an integer:”);
scanf(“%d”, &num);
isPrime = prime( num ); //函數調用
if ( 1 == isPrime )
printf(“ %d is a prime \n” , num);
else
printf(“ %d is not a prime\n” , num );
return 0;
}

int prime( int n ) //函數定義
{
int i;
for( i = 2; i <= sqrt( n ) ; ++i)
if ( n % i == 0 ) break;

if ( i > sqrt ( n ) )
return 1;
else
return 0;
}

(5)編寫程式。功能:計算並輸出500以內最大的10個能被13或17整除的自然數之和。
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int n; //500-1之間的整數
int sum = 0; //求和變數
int count = 0; //滿足條件的數的個數
for ( n=500; n>0; --n)
{
if ( n % 13 == 0 || n % 17 == 0 )
{
sum += n;
++count;
if ( count >= 10 ) //有10個滿足條件的整數,提前結束迴圈
break;
}
}
printf(“sum = %d\n”, sum );
return 0;
}

(4)編寫程式。功能:分別求出一批非零整數中的偶數、奇數的平均值,用零作為終止標記。
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int n;//整數
int eSum = 0; //奇數的和
int oSum = 0; //偶數的和
int eCount = 0; //奇數的個數
int oCount = 0; //偶數的個數
printf(“請輸入若幹個整數(以0結束輸入):”);
scanf(“%d”, &n);
while ( n ) //當n不為0 
{
if ( n % 2 ) //n為奇數
{ eSum += n; ++eCount; }
else //否則, n為偶數
{ oSum += n; ++oCount; }
scanf(“%d”, &n); //輸入下一個整數
}
printf(“奇數平均值:%f\n”, 1.0 * eSum / eCount );
printf(“偶數平均值:%f\n”, 1.0 * oSum / oCount );
return 0;
}

(6)編寫程式。功能:百馬百擔問題:有100匹馬,馱100擔貨,大馬馱三擔,中馬馱2擔,兩匹小馬馱一擔,求大、中、小馬各多少匹?
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int bigHorse, midHorse, littleHorse; //大、中、小馬的數量
for ( bigHorse = 0; bigHorse <= 33; ++bigHorse )
for( midHorse = 0; midHorse <= 50; ++midHorse )
{
littleHorse = 100 – bigHorse – midHorse; //小馬數量
if ( littleHorse % 2 == 0 && (3*bigHorse + 2*midHorse + littleHorse / 2 == 100 ) ) //小馬數量是偶數,且三種馬馱的貨是100擔
printf(“大馬:%d, 中馬:%d, 小馬:%d\n”, bigHorse, midHorse, littleHorse );
}
return 0;
}

(7)編寫程式。功能:百雞問題:100元買100只雞,公雞一隻5元錢,母雞一隻3元錢,小雞一元錢三隻,求100元錢能買公雞、母雞、小雞各多少只?
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int cock, hen, chick; //公雞、母雞、小雞的數量
for (cock = 0; cock <= 20; ++ cock)
for(hen = 0; hen <= 33; ++ hen)
{
chick = 100 –cock–hen; //小雞數量
if (chick % 3 == 0 && (5* cock + 3* hen + chick / 3 == 100 ) ) //小雞數量是3的倍數,且三種雞的總錢數是100
printf(“公雞:%d, 母雞:%d, 小雞:%d\n”, cock, hen, chick);
}
return 0;
}

(8)編寫程式。功能:在屏幕上用*輸出一個漏斗狀的圖形。
答案:
程式代碼如下:
#include <stdio.h>

void printFunnel( int n); //函數聲明

int main( )
{
int n; //上半部的總行數
printf(“請輸入漏斗上半部的總行數:”);
scanf(“%d”, &n);
printFunnel( n ); //調用函數列印漏斗形
return 0;
}

void printFunnel( int n)
{
int row; //行號
int starCount; // 某行上星號的數量
int spaceCount; //某行上空格的數量
for( row = 1; row <= n; ++row)
{
for( spaceCount = 1; spaceCount <= row – 1 ; ++ spaceCount)
printf(“ “); //列印出某行上星號前的空格

for( starCount = 1; starCount <= 2*( n – row ) + 1; ++starCount )
printf(“* “); //列印出某行上的所有星號

printf(“\n”); //換行
}

//列印下半部分(可看成一個n-2行的三角形狀)
for( row = 2; row <= n; ++row)
{
for( spaceCount = 1; spaceCount <= n - row ; ++ spaceCount)
printf(“ “); //列印出某行上星號前的空格

for( starCount = 1; starCount <= 2* row - 1; ++starCount )
printf(“* “); //列印出某行上的所有星號

printf(“\n”); //換行
}
}

9)編寫程式。功能:輸出100到1000之間的各位數字之和能被15整除的所有數,輸出時每10個數一行。
答案:
程式代碼如下:
#include <stdio.h> 
int main( )
{
int n;//100到1000之間的整數
int tmpn;//臨時存儲n
int sum; //統計n的各位數字之和
int count = 0; //輸出數的個數
for ( n = 100; n <= 1000; ++n )
{
tmpn = n; //將n臨時存儲到tmpn中
sum = 0; //每個n要重新計算各位數字之和
while ( tmpn ) //當tmpn不為0時
{
sum += tmpn % 10;
tmpn /= 10;
}
if ( sum % 15 == 0 ) //如果n滿足指定的條件
{
printf(“%5d”, n); //輸出當前n值
++count;
if ( count % 10 == 0 ) //一行輸出了10個整數,則換行
printf(“\n”);
}
}
printf(“\n”);
return 0;
}

(1)編寫程式,從鍵盤輸入兩個數字字元並分別存放在字元型變數x和y中,要求通過程式將這兩個字元對應的數字相加後輸出。
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
char x , y;
printf(“Input two characters:”);
scanf(“%c%c”, &x, &y);
if( x>=’0’&&x<=’9’ && y>=’0’&&y<=’9’ )
printf(“%d \n”, x-'0'+y-'0');
return 0;
}

1)某市不同車牌的計程車3公裡的起步價和計費分別為:夏利7元/公裡,3公裡以外2.1元/公裡;富康8元/公裡,3公裡以外2.4元/公裡;桑塔納9元,3公裡以外2.7元/公裡。編程:從鍵盤輸入乘車的車型及公裡數,輸出應付的車資。
答案:
程式代碼如下:
#include <stdio.h>

int main( )
{
int carType;//車型。1代表夏利;2代表富康;3代表桑塔納
double xiali = 2.1; //每公裡價格
double fukang = 2.4;
double sangtana = 2.7;
double distance; //距離
double totalMoney;//總的收費

printf("請輸入您乘坐的車型:1代表夏利;2代表富康;3代表桑塔納:");
scanf("%d", &carType);
printf("請輸入您乘車的總路程:");
scanf("%lf", &distance);

if( carType == 1)//夏利
{
if( distance < 3 )
totalMoney = 7.0;
else
totalMoney = 7 + xiali * (distance – 3);
}
else if( carType == 2 ) //富康
{
if( distance < 3 )
totalMoney = 8.0;
else
totalMoney = 8 + fukang * (distance – 3);
}
else if( carType == 3 ) //富康
{
if( distance < 3 )
totalMoney = 9.0;
else
totalMoney = 9 + sangtana * (distance – 3);
}

printf("(四捨五入)您的車費為:%.0lf\n", totalMoney );

return 0;
}

編寫程式,從鍵盤上輸入一個小寫字母,將其轉化為大寫字母。
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
char lower;
printf( “Input a lower alpha:”);
scanf(“%c”, &lower);
if( lower>=’a’ && lower<=’z’ )
printf(“%c \n”, lower - 32);
return 0;
}

(3)編寫函數,將數組s1中的全部奇數都複製到數組s2中。函數原型可聲明為:“int copyTo( int * s1 , int n, int * s2 ) ; ”,參數s1和s2為指向兩個數組的指針,n為數組s1中元素的個數,返回值為複製完成後s2中元素的個數。
答案:
程式代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int copyTo( int *s1, int n , int *s2 );

int main( )
{
int s1[100], s2[100];
int count; //最終奇數的個數
int i;
srand( time ( NULL ) ); //隨機種子
for ( i = 0; i < 100; ++i ) //避免每次執行程式重覆輸入
s1[i] = rand( ) % 1001 ; //隨機生成0-1000之間的整數

for ( i = 0; i < 100; ++i ) //列印出數組s1元素
printf(“%5d”, s1[i] ) ;
printf(“\n”);

count = copyTo( s1, 100, s2 );

printf(“奇數如下:\n”);
for ( i = 0; i < count; ++i ) //列印出數組s2元素
printf(“%5d”, s2[i] ) ;
printf(“\n”);
return 0;
}

int copyTo( int *s1, int n , int *s2 )
{
int *ps1, *ps2;
ps1 = s1; ps2 = s2;
while ( ps1 < s1 + n )
{
if( *ps1 % 2) //是奇數
*ps2++ = *ps1;
ps1++;
}
return ps2 – s2;
}

6)編寫函數,將字元串中的大寫字母轉換為小寫字母。函數原型可聲明為“void strToLow( char * str ) ;”,參數str是要轉換的字元串。
答案:
程式代碼如下:
#include <stdio.h>
#include <string.h>

void toLowerCase( char *str);

int main( )
{
char str[100];
puts(“請輸入字元串:”);
gets(str);
toLowerCase ( str );
puts(“轉換後的字元串:”);
puts( str );
return 0;
}

void toLowerCase ( char *str )
{
while ( *str )
{
if(*str >= ‘A’ && *str <= ‘Z’ )
*str += 32; //小寫字母轉換成大寫
++str;
}
}

(2)Write a program that asks the user to type in two integer values at the terminal. Test these two number to determine if the first is evenly divisible by the second, and then display an appropriate message at the terminal.
答案:
程式代碼如下:
#include <stdio.h>
int main( )
{
int num1, num2;
printf(“Input two integers:”);
scanf(“%d%d”, &num1, &num2);
if ( 0 == num1 % num2 )
printf(“ %d can be evenly divisible by %d\n”, num1, num2);
else
printf(“ %d can not be evenly divisible by %d\n”, num1, num2);
return 0;
}


 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 自從學了c語言,就一直想做個游戲,今天將之付之行動,第一次寫的特別爛,各種bug;就不貼了。今天網上看了好幾個貪吃蛇,重新寫了一次,做出來的效果還可以。 下麵是詳細的構建過程,本節因為時間限制,先貼出比較重要的控制函數實現,並用它做一個很簡單很簡單很有趣的畫圖程式。 首先,要對貪吃蛇的結構有一個大概 ...
  • java中的單例模式都很熟悉了:簡單地說就是一個類只能有一個實例。在scala中創建單例對象非常簡單,創建類時使用object關鍵字替換class即可。因為單例類無法初始化,所以不能向它的主構造函數傳遞參數。 下麵是一個單例的示例: class Marker(val color: String) {... ...
  • 函數原型: 頭文件: 引入: 字元串由'\0'結尾,所以字元串內部不能包含任何'\0'字元('\0'的ASCII值為0),否則我們將讀不到'\0'後的字元內容。但是,非字元串內部包含零值的情況並不罕見,我們無法利於其它字元串函數來處理這類數據。所以,我們要引入記憶體操作的函數來處理。 memcpy m ...
  • (•̀ᴗ•́)و ̑̑ 單鏈表/雙向鏈表的建立/遍歷/插入/刪除實例 迴圈鏈表的概念 ...
  • 上一節,描述了服務發現、負載均衡以及服務之間的調用。到這裡,加上第二節的服務註冊,整個微服務的架構就已經搭建出來了,即功能性需求就完成了。從本節開始的記錄其實全部都是非功能性需求。 一、集群容錯 技術選型:hystrix。(就是上圖中熔斷器) 熔斷的作用: 第一個作用: 假設有兩台伺服器server ...
  • 先測試了一下加減,檢查一下環境,又調用函數測試了伺服器名。 源代碼: 生成測試文件: 這裡的伺服器測試用例是手動加上去的! 執行結果: ...
  • Theme 類,應用的主題,通過替換路徑實現主題的應用,方法為獲取根路徑和根鏈接:yii2\base\Theme.php ...
  • 前序遍歷:中,左,右 中序遍歷:左,中,右 後序遍歷:左,右,中 二叉樹查找 從根節點進行比較,目標比根節點小,指針移動到左邊 從根節點進行比較,目標比根節點大,指針移動到右邊 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...