1. 程式人生 > >c語言實用經典100題(1-10題)

c語言實用經典100題(1-10題)

【程式1題目:有1234個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
1.
程式分析:可填在百位、十位、個位的數字都是1234。組成所有的排列後再去      掉不滿足條件的排列。

2.程式原始碼:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	int i, j, k;
	for(i = 1; i < 5; i++)
	{
		for(j = 1; j < 5; j++)
		{
			for(k = 1; k < 5; k++)
			{
				if(i != j && i != k && j != k)
				{
					printf("%d%d%d\n" , i , j , k);
				}
			}
		}
	}
	
	return 0;
}
【程式2題目:企業發放的獎金根據利潤提成。利潤(i)低於或等於10萬元時,獎金可提10%;利潤高   於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提   成7.5%20萬到40萬之間時,高於20萬元的部分,可提成5%40萬到60萬之間時高於40萬元的部分,可提成3%60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數?
1.
程式分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。      
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	long int i;
	int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
	scanf("%ld",&i);
	bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
	bonus4=bonus2+200000*0.5;
	bonus6=bonus4+200000*0.3;
	bonus10=bonus6+400000*0.15;
 	if(i<=100000)
  	bonus=i*0.1;
 	else if(i<=200000)
     bonus=bonus1+(i-100000)*0.075;
     else if(i<=400000)
       bonus=bonus2+(i-200000)*0.05;
       else if(i<=600000)
           bonus=bonus4+(i-400000)*0.03;
          else if(i<=1000000)
              bonus=bonus6+(i-600000)*0.015;
             else
              bonus=bonus10+(i-1000000)*0.01;
	printf("bonus=%d",bonus);

	return 0;
}
【程式3題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
1.
程式分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後      的結果滿足如下條件,即是結果。請看具體分析:
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	long int i, x, y, z;
	for(i = 0; i < 100000; i++)
	{
		x = sqrt(i + 100);
		y = sqrt(i + 268);
		if(x*x == (i + 100) && y*y == (i + 268))	//完全平方數:自己*自己=數的平方形式 
		{
			printf("\n%ld\n",i);	
		}
	}
	return 0;
}
【程式4題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1.
程式分析:以35日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊      情況,閏年且輸入月份大於3時需考慮多加一天。
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	int year, month, day, sum, leap;
	printf("輸入格式為:年-月-日\n");
	scanf("%d-%d-%d", &year,&month,&day);
	switch(month)
	{
		case 1:
			sum = 0;
			break;
		case 2:
			sum = 31;
			break;
		case 3:
			sum = 59;
			break;
		case 4:
			sum = 90;
			break;
		case 5:
			sum = 120;
			break;
		case 6:
			sum = 151;
			break;
		case 7:
			sum = 181;
			break;
		case 8:
			sum = 212;
			break;
		case 9:
			sum = 243;
			break;
		case 10:
			sum = 273;
			break;
		case 11:
			sum = 304;
			break;
		case 12:
			sum = 334;
			break;									
	}
	sum += day;
	if(year%400 == 0 || (year%4 == 0 && year%100 != 0))
		leap = 1;
	else
		leap = 0;
		if(leap = 1 && month > 2)
			sum++;
			printf("這一天是這一年的第%d天" , sum);
	return 0;
}
【程式5】題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
1.
程式分析:我們想辦法把最小的數放到x上,先將xy進行比較,如果x>y則將xy的值進行交換,      然後再用xz進行比較,如果x>z則將xz的值進行交換,這樣能使x最小。
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	int x, y, z, t;
	scanf("%d,%d,%d" , &x,&y,&z);
	if(x > y)
	{
		t = x;
		x = y;
		y = t;
	}
	if(x > z)
	{
		t = x;
		x = z;
		z = t;
	}
	if(y > z)
	{
		t = y;
		y = z;
		z = t;
	}
	printf("\n%d,%d,%d\n" , x, y,z);
	return 0;
}
【程式6】題目:用*號輸出字母c的圖案。
1.
程式分析:可先用'*'號在紙上寫出字母c,再分行輸出。
2.程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	printf(" ****\n");
	printf(" *\n");
	printf(" * \n");
	printf(" ****\n");

	return 0;
}
【程式7】題目:輸出特殊圖案,請在c環境中執行,看一看,very beautiful!
1.
程式分析:字元共有256個。不同字元,圖形不一樣。      
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	char a=2,b=4;
	printf("%c%c%c%c%c\n",b,a,a,a,b);
	printf("%c%c%c%c%c\n",a,b,a,b,a);
	printf("%c%c%c%c%c\n",a,a,b,a,a);
	printf("%c%c%c%c%c\n",a,b,a,b,a);
	printf("%c%c%c%c%c\n",b,a,a,a,b);

	return 0;
}
【程式8】題目:輸出9*9口訣。
1.
程式分析:分行與列考慮,共99列,i控制行,j控制列。
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	int i, j, r;
	for(i = 1; i <= 9; i++)
	{
		for(j = 1; j <= 9; j++)
		{
			r = i*j;
			printf("%d*%d=%-3d",i,j,r);
		}
		printf("\n");
	}
	return 0;
}
【程式9】題目:要求輸出國際象棋棋盤。
1.
程式分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	int i,j;
	for(i = 0; i < 8; i++)
	{
		for(j = 0; j < 8; j++)
		{
			if((i+j)%2 == 0)
			printf("%c%c" , 1,1);
			else
			printf(" ");
			
		}
	printf("\n"); 
	}
	return 0;
}
【程式10題目:列印樓梯,同時在樓梯上方列印兩個笑臉。
1.
程式分析:用i控制行,j來控制列,j根據i的變化來控制輸出黑方格的個數。
2.
程式原始碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{
	int i,j;
	printf("\1\1\n");/*輸出兩個笑臉*/
	for(i=1;i<11;i++)
	{
		for(j=1;j<=i;j++)
		printf("%c%c",19,19);
		printf("\n");
	}
	return 0;
}









相關推薦

c語言實用經典1001-10

【程式1】題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去      掉不滿足條件的排列。2.程式原始碼:#include<stdio.h> #in

c語言程式設計常見問題總結1

總結1: 將全域性變數放在會被多次呼叫的標頭檔案中,編譯會報錯:該變數被多次定義,所以是最好把全域性變數放在.c檔案中。 總結2:  Getche()函式,輸入後立即從控制檯取字元,不以回車為結束(帶回顯); Getch()是一個不回顯函式,當用戶按下某個字元時,函式自動讀

c語言遞迴演算法--深入淺出1

RECURSION EXERCISES 1 (遞迴練習1) 前言:資質駑鈍,剛剛學習遞迴的時候總是感覺有點空洞,懸乎。 可能沒有足夠例題練練手。最近找了幾道有難度層次的遞迴例題,在此分享給大家。 S

開啟C語言【困難模式】1

前言 談到C語言,很多人都會笑笑,好像C語言看起來很平凡,很普通,很大眾。然而值得注意的是,這是一門極其底層的語言,可以直接調用匯編語句,使用系統函式。不論是系統開發,驅動開發,作業系統還是緩衝區溢位攻擊等,C語言永遠是理解萬物的基石。 說來慚愧,博主此刻距離C語言的第一堂課已兩年有餘,

C語言入門經典——基礎知識資料型別

一、讀取資料的格式說明符讀取資料的格式說明符操作          需要的控制字串讀取short型別的資料   sizeof(short) = 2  sizeof(unsigned short) = 2%hd讀取int型別的資料   sizeof(int) =  4    s

實現一個C語言版的JSON庫1

什麼是JSON JSON(JavaScript Object Notation)是一個用於資料交換的文字格式,它源至於 JavaScript 語言,但它本身只是一種資料格式,可用於任何程式語言。現時具類似功能的格式有 XML等。 一個典型的JSON文字如下:

c語言中的特殊符號結構體中

結合 特殊 value -s height 間接尋址 出現 span size  在“結構”中出現的->運算符成為“右箭頭選擇”,可以用new_node->value = 10;來代替(*new_code).value = 10;即運算符->是運算符*和運

匯編語言筆記1-10

多少 read 範圍 exe 第一步 指令 裏的 方便 執行文件 第一章重點:匯編指令和機器指令一一對應,有編譯器翻譯識別,計算機無法直接識別一個存儲單元等於1字節 1字節等於8位1KB=1024Byte(字節)1Byte=8bit(位)CPU中,指令和數據都是二進制形式存

C程式設計習慣》讀書筆記1-6章

最近在看兩本國人寫的書:C程式設計習慣、Linux C程式設計。越看越發現如獲至寶。有時真覺得,看國外的書,都能將晦澀概念深入淺出解釋通透,而國內的書,能切合國人的習慣來解釋和應用知識。以前只青睞國外的書,這兩本國內的電子書本來只想簡單瀏覽一遍鞏固基礎,現在越看越想做讀書筆記,因為實在是很多看似

C語言】實現一個計算器兩種方式

1.使用switch…case…語句實現 #define _CRT_SECURE_NO_DEPRECATE 1 #include <stdio.h> #include <stdlib.h> int add(int x, int y) {   &nb

ubuntu下c語言對mysql進行CRUD增刪改查

Step 1:登入mysql mysql -u root -p Step 2:在資料庫中新增資料: create database foo; use foo; CREATE TABLE children( childno int(11) NOT NULL

C語言實現簡單 三子棋井字棋小遊戲

函式頭 放在標頭檔案裡 #ifndef __GAME_H__ #define __GAME_H__ #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #inc

# C++面向物件程式設計50道程式設計10

C++面向物件程式設計50道程式設計題(第10題) 摘要:C++程式設計實習是為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛鍊學生的分析問題和解決問題的能力,提高學生運用所學知識解決實際問題的能力。   本專輯為程式設計入門者、高校計算機軟體

C語言程式設計:現代方法第2版K.N.King 著》學習筆記一:C語言概述

1.1 C語言的歷史 1.1.1 起源 C語言是美國貝爾實驗室的 Dennis Ritchie、Ken Thompson 等人為開發 UNIX 作業系統而於 1972 年設計的一種計算機程式語言。

C語言程式設計:現代方法第2版K.N.King 著》學習筆記三:C語言基本概念2

2.3 註釋 每一個程式都應該包含識別資訊,即程式名、編寫日期、作者、程式的用途以及其他相關資訊。C語言把這類資訊放在註釋(comment)中。 符號 /* 標記註釋的開始,而符號 */ 則標記註釋

C語言程式設計:現代方法第2版K.N.King 著》學習筆記四:C語言基本概念3

2.5 讀入輸入 為了獲取輸入,就要用到 scanf 函式。它是C函式庫中與 printf 相對應的函式。scanf 中的字母 f 和 printf 中的字母 f 含義相同,都是表示“格式化”的意思

C語言程式設計:現代方法第2版K.N.King 著》學習筆記五:C語言基本概念4

2.7 識別符號 在編寫程式時,需要對變數、函式、巨集和其他實體進行命名。這些名字稱為識別符號(identifier)。在C語言中,識別符號可以含有字母、數字和下劃線,但是必須以字母或者下劃線開頭。

C語言程式設計:現代方法第2版K.N.King 著》學習筆記六:C語言基本概念5

問與答 GCC 最初是 GNU C Compiler 的簡稱。現在指 GNU Compiler Collection,這是因為最新版本的 GCC 能夠編譯用 Ada、C、C++、Fortran、Ja

python入門1001-10

純個人練習,熟悉一下python。 程式:1-10 """ 【程式1】 題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? """ for i in range(1,5): for j in range(1,5):

C語言程式設計:現代方法第2版K.N.King 著》學習筆記九:格式化輸入/輸出2

3.2 scanf 函式 就如同 printf 函式用特定的格式顯示輸出一樣,scanf 函式也根據特定的格式讀取輸入。像 printf 函式的格式串一樣,scanf 函式的格式串也可以包含普通字元