天天看點

C語言程式設計入門之刷題篇-2BC6-小飛機BC8-十六進制轉十進制BC9-printf函數的傳回值BC11-學生基本資訊輸入輸出BC35-判斷字母BC12-字元金字塔BC13-ASCII碼BC14-出生日期輸入輸出BC29-2的n次方計算BC15-按照格式輸入并交換輸出BC16-字元轉ASCII碼BC17-計算表達式的值BC18 計算帶餘除法

C語言程式設計第2講

  • BC6-小飛機
  • BC8-十六進制轉十進制
  • BC9-printf函數的傳回值
  • BC11-學生基本資訊輸入輸出
  • BC35-判斷字母
  • BC12-字元金字塔
  • BC13-ASCII碼
  • BC14-出生日期輸入輸出
  • BC29-2的n次方計算
  • BC15-按照格式輸入并交換輸出
  • BC16-字元轉ASCII碼
  • BC17-計算表達式的值
  • BC18 計算帶餘除法

BC6-小飛機

描述:
KiKi學會了printf在螢幕輸出資訊,他想輸出一架小飛機。請幫他編寫程式輸出這架小飛機。

輸入描述:
無

輸出描述:
         **
         **
    ************
    ************
        *  *
        *  *
           
#include<stdio.h>

int main()
{
    printf("     **     \n");
    printf("     **     \n");
	printf("************\n");
    printf("************\n");
    printf("    *  *    \n");
    printf("    *  *    \n");
    
    return 0;
}
           

BC8-十六進制轉十進制

描述
BoBo寫了一個十六進制整數ABCDEF,他問KiKi對應的十進制整數是多少。

輸入描述:
無

輸出描述:
十六進制整數ABCDEF對應的十進制整數,所占域寬為15。

備注:
printf可以使用使用格式控制串“%md”輸出域寬為m的十進制整數。
           
#include<stdio.h>

int main()
{
    printf("%15d\n",0XABCDEF);
    
    return 0;
}
           

BC9-printf函數的傳回值

描述
KiKi寫了一個輸出“Hello world!”的程式,BoBo老師告訴他printf函數有傳回值,你能幫他寫個程式輸出printf(“Hello world!”)的傳回值嗎?

輸入描述:
無

輸出描述:
包括兩行:
第一行為“Hello world!”
第二行為printf(“Hello world!”)調用後的傳回值。
           
#include<stdio.h>

int main()
{
    //方法1
    int returnvalue=printf("Hello world!\n");//printf的傳回值是列印的字元數 
    printf("%d",returnvalue-1);//注意字元包括了\n! 
    
    //方法2
    int returnvalue=printf("Hello world!");//printf的傳回值是列印的字元數 
    printf("\n%d",returnvalue);//注意字元包括了\n! 
    
    //方法3
    printf("\n%d",printf("Hello world!"));
    
    printf("%d",printf("%d",printf("%d",43)));//4321
    
    return 0;
}
           

BC11-學生基本資訊輸入輸出

描述
依次輸入一個學生的學号,以及3科(C語言,數學,英語)成績,在螢幕上輸出該學生的學号,3科成績。

輸入描述:
學号以及3科成績,學号和成績之間用英文分号隔開,成績之間用英文逗号隔開。

輸出描述:
學号,3科成績,輸出格式詳見輸出樣例。

示例1
輸入:
17140216;80.845,90.55,100.00
輸出:
The each subject score of  No. 17140216 is 80.85, 90.55, 100.00.
           
#include<stdio.h>

int main()
{
    int id=0;
    float s1,s2,s3;//保持精度
    scanf("%d;%f,%f,%f",&id,&s1,&s2,&s3);//float-%f double-%lf
    printf("The each subject score of  No. %d is %.2f, %.2f, %.2f.",id,s1,s2,s3);//.n 輸出小數n位
    
	return 0;
}
           

BC35-判斷字母

描述
從鍵盤任意輸入一個字元,程式設計判斷是否是字母(包括大小寫)。

輸入描述:
多組輸入,每行輸入包括一個字元。

輸出描述:
針對每行輸入,輸出該字元是字母(YES)或不是(NO)。

示例1
輸入:
H
9
輸出:
YES
NO

           
#include<stdio.h>

int main()
{
    char ch;

	while((ch=getchar())!=EOF)
	{
        //方法一
		if((ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
        	printf("YES\n");
        else
        	printf("NO\n");
        	
        //方法二
        //#include<ctype.h>
		printf("%s",isalpha(ch)?"YES\n":"NO\n");//isalpha(ch)是字母傳回真,不是傳回假 

		getchar();//處理\n
	}
    
	return 0;
}
           

BC12-字元金字塔

描述
輸入一個字元,用它構造一個三角形金字塔。

輸入描述:
輸入隻有一行,一個字元。

輸出描述:
該字元構成的三角形金字塔。

示例1
輸入:
1
輸出:
    1
   1 1
  1 1 1
 1 1 1 1
1 1 1 1 1
           
#include<stdio.h>

int main()
{
	char ch;
	ch=getchar();
	
	int i;
	for(i=0;i<5;i++)
	{
		int j;
        //列印空格
		for(j=0;j<4-i;j++)
		{
			printf(" ");
		}
        //列印字元
		for(j=0;j<=i ;j++)
		{
			printf("%c ",ch);
		}
		printf("\n");
		
	}
	return 0;
}
           

BC13-ASCII碼

描述
BoBo教KiKi字元常量或字元變量表示的字元在記憶體中以ASCII碼形式存儲。BoBo出了一個問題給KiKi,轉換以下ASCII碼為對應字元并輸出他們。

73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33

輸入描述:
無

輸出描述:
轉換輸出題目中給出的所有ASCII到對應的字元。
           
#include<stdio.h>

int main()
{
    char arr[]={73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33};
	int size=sizeof(arr)/sizeof(arr[0]);
    int i=0;
    for(;i<size;i++)
        printf("%c",arr[i]);
	return 0;
}
           

BC14-出生日期輸入輸出

描述
輸入一個人的出生日期(包括年月日),将該生日中的年、月、日分别輸出。

輸入描述:
輸入隻有一行,出生日期,包括年月日,年月日之間的數字沒有分隔符。

輸出描述:
三行,第一行為出生年份,第二行為出生月份,第三行為出生日期。輸出時如果月份或天數為1位數,需要在1位數前面補0。

示例1
輸入:
20130225 
輸出:
year=2013
month=02
date=25
           
#include<stdio.h>

int main()
{
    //方法一
	int input;
	scanf("%d",&input);
	
	int year=input/10000;
	printf("year=%d\n",year);
	
	int month=input/100%100;
	if(month<10)
		printf("month=0%d\n",month);
	else
		printf("month=%d\n",month);
		
	int date=input%100;
		if(date<10)
		printf("date=0%d\n",date);
	else
		printf("date=%d\n",date);
		
	//方法二
	int year,month,date;
	
	scanf("%4d%2d%2d",&year,&month,&date);
	printf("year=%d\n",year);
	printf("month=%02d\n",month);
	printf("date=%02d\n",date);
    
	return 0;
}
           

BC29-2的n次方計算

描述
不使用累計乘法的基礎上,通過移位運算(<<)實作2的n次方的計算。

輸入描述:
多組輸入,每一行輸入整數n(0 <= n < 31)。

輸出描述:
針對每組輸入輸出對應的2的n次方的結果。
示例1

輸入:
2
10
複制
輸出:
4
1024
           
#include<stdio.h>

int main()
{
	/*
	int a=1;//00000000000000000000000000000001
	a<<2;//00000000000000000000000000000100
	*/
    int n;
    //多組輸入
    while(scanf("%d",&n)!=EOF)
    {
        //2的n的次方
    	printf("%d\n",1<<n);
	}
    
    return 0;
}
           

BC15-按照格式輸入并交換輸出

描述
輸入兩個整數,範圍-2^31~2^31-1,交換兩個數并輸出。

輸入描述:
輸入隻有一行,按照格式輸入兩個整數,範圍,中間用“,”分隔。

輸出描述:
把兩個整數按格式輸出,中間用“,”分隔。
示例1

輸入:
a=1,b=2
輸出:
a=2,b=1
           
#include<stdio.h>

int main()
{
    int a=1,b=2;
    
    scanf("a=%d,b=%d",&a,&b);
    
    b=b-a;
    a=a+b;
    b=a-b;
    
    printf("a=%d,b=%d",a,b);
    
    return 0;
}
           

BC16-字元轉ASCII碼

描述
BoBo教KiKi字元常量或字元變量表示的字元在記憶體中以ASCII碼形式存儲。BoBo出了一個問題給KiKi,輸入一個字元,輸出該字元相應的ASCII碼。

輸入描述:
一行,一個字元。

輸出描述:
一行,輸出輸入字元對應的ASCII碼。
示例1

輸入:
c
輸出:
99
           
#include<stdio.h>

int main()
{  
    printf("%d",getchar());
    
    return 0;
}
           

BC17-計算表達式的值

描述
請計算表達式“(-8+22)×a-10+c÷2”,其中,a = 40,c = 212。

輸入描述:
無。

輸出描述:
(-8+22)×a-10+c÷2計算之後的結果,為一個整數。
           
#include<stdio.h>

int main()
{  
    printf("%d",(-8+22)*40-10+212/2);
    
    return 0;
}
           

BC18 計算帶餘除法

描述
給定兩個整數a和b (-10,000 < a,b < 10,000),計算a除以b的整數商和餘數。

輸入描述:
一行,包括兩個整數a和b,依次為被除數和除數(不為零),中間用空格隔開。

輸出描述:
一行,包含兩個整數,依次為整數商和餘數,中間用一個空格隔開。

示例1
輸入:
15 2
輸出:
7 1
           
#include<stdio.h>

int main()
{
	int num1=0,num2=0;
	scanf("%d %d",&num1,&num2);
    printf("%d %d",num1/num2,num1%num2);
    
    return 0;
}
           

繼續閱讀