1. 程式人生 > >ITAT 第一屆 C語言程式設計 參考答案(個人答案 僅供參考)

ITAT 第一屆 C語言程式設計 參考答案(個人答案 僅供參考)

全國“IT&AT”教育工程技能大賽試題
C語言

1.輸入一個五位整數,將它反向輸出。例如輸入12345,輸出應為54321。(15分)

僅供參考:

方法一: 遞迴

#include <stdio.h>

void invert(long m);

void main()
{
    long n;
    printf("Enter n: ");
    scanf("%ld", &n);
    invert(n);
    printf("\n");
}

void invert(long m)
{   printf("%ld", m%10);
    m = m/10;
    if (m>0)
        invert(m);
}

方法二: 陣列 指標

#include <stdio.h>

void main()
{
	char p[10];
	char *q;
    int i=0;
	scanf("%s",p);
	q=p;
	while(*(q++))i++;
	q--;
	
    while(i-->=0)
		printf("%c",*(q--));
}

2.用兩種迴圈結構分別程式設計計算1+2+3…+100的值。執行結果為“1+2+…+100=5050”(15分) 

僅供參考:

(1)   for迴圈

#include <stdio.h>

void main()
{
	int sum=0;
	for(int i=1;i<=100;i++)
		sum+=i;
	printf("%d\n",sum);

}


(2)   Whilie 迴圈

#include <stdio.h>

void main()
{
	int sum=0;
	int i=1;
	while(i<=100)
	{
		sum+=i;
		i++;
	}
	printf("%d\n",sum);
}


3.從終端讀入20個數據到陣列中,統計其中正數的個數,並計算它們之和。(15分)

僅供參考:

#include <stdio.h>

void main()
{
	double A[20];
	int i=0,n=0;
	double sum=0.0;
	for(i=0;i<20;i++)
		scanf("%lf",&A[i]);
	i=0;
	while(i<20)
	{
		if(A[i]>0)
		{
			n++;
			sum+=A[i];
		}
		i++;
	}
	printf("%d,%lf\n",n,sum);
	
}

4.利用指標實現將5個整數輸入到陣列a中,然後將a逆序複製到陣列b中,並輸出b中各單元的值。(20分)

僅供參考:

#include <stdio.h>

void main()

{
	int A[5],B[5];

	int *pa=A;
	int *pb=B;

	for(int i=0;i<5;i++)
	{
		scanf("%d",&A[i]);
		*(pb+4-i)=*(pa+i);
	}
	for(i=0;i<5;i++)
		printf("%d",*(pb+i));
		printf("\n");
}
5.要將五張100元的大鈔票,換成等值的50元,20元,10元,5元一張的小鈔票,要求換成30張小鈔票,每種面值的至少一張,程式設計輸出所有可能的換法,程式應適當考慮減少重複次數。(25分)

僅供參考:

#include <stdio.h>

void main()
{
	int count=0;
	int x5,x2,x1;
	unsigned int x;
	for(x5=1;x5<=7;x5++)
	{
		for(x2=1;x2<=20;x2++)
		{
			for(x1=1;x1<=22;x1++)
			{
				for(x=1;x<=20;x++)
				{
					if((x5*50+x2*20+x1*10+x*5==500)&&(x5+x2+x1+x==30))
					{
						printf("%d\t%d\t%d\t%d\n",x5,x2,x1,x);
					}
				}
			}
		}
	}
}

6.求n以內(不包括n)同時能被3和7整除的所有自然數之和的平方根s,並作為函式值返回,最後結果s輸出到檔案out.dat中。例如若n為1000時,函式值應為:s=153.909064。(30分)

僅供參考:

#include<stdio.h>
#include<math.h>

void main()
{
	int i,n;
	double s,sum=0;
	printf("please input a number for n:\n");
	scanf("%d",&n);
	printf("The number is n=%d\n",n);
	for(i=1;i<n;i++)
	{
		if(i%3==0 && i%7==0)
		{sum+=i;}
	}
	printf("sum=%lf\n",sum);
	s=sqrt(sum);
	printf("s=%lf\n",s);
}

注:最後的 “最後結果s輸出到檔案out.dat中” 這一項 未完成 以後補充

相關推薦

ITAT 第一 C語言程式設計 參考答案個人答案 參考

全國“IT&AT”教育工程技能大賽試題C語言 1.輸入一個五位整數,將它反向輸出。例如輸入12345,輸出應為54321。(15分) 僅供參考: 方法一: 遞迴 #include <stdio.h> void invert(long m);

第一 C語言比賽

https://zhuanlan.zhihu.com/p/49116229 This English game is a simple English words connection game. The rules are as follows: there are N English

C語言程式設計:有n個人圍成一圈,順序排號。從第一個人開始報數...

但是,看這些答案的程式,太麻煩的居多。做而論道針對這個問題,寫了一個程式,自我感覺是最簡短的。呵呵,歡迎網友拍磚。程式如下:==============================#include

C語言程式設計 細節總結第10-11章 檔案、預處理命令

第10章 檔案 1.C語言系統把檔案當成一個流,按位元組進行處理 2.檔案按編碼方式分為二進位制檔案和ASCII檔案(文字檔案) 3.用檔案指標標識檔案,開啟檔案可取得該指標 4.對檔案進行操作,開啟->讀寫->關閉 5.檔案開啟方式只有四種:只讀、

C語言程式設計 細節總結連結串列

12 連結串列 12.1 連結串列概述 1.採用動態儲存分配的一種重要資料結構,一個連結串列中儲存的是一批同類型的相關聯資料 2.動態分配時,每個結點之間可以不連續,結點之間的聯絡可以用指標實現,每個結點分兩個域:資料域和指標域 12.2 處理動態連結串列所需函

C語言程式設計學科小結從認識c到分支結構

         C語言的魅力在於其在高階語言中高效的執行能力,對於開發計算機底層有重要作用,它的魅力所在還需要我們不斷探尋,學習c到現在也只不過瞭解了c的最表層。           知識點總結 #include<stdio.h>//包含標準輸入輸出檔案。 using namespace

C語言編寫Copy程式Linux環境下的操作

COPY程式的編寫 (作者:Baron_wu 禁止轉載) 一、實驗描述 在這個實驗中,我們要做一個程式,這個程式是將一個檔案的內容複製到一個目標檔案。首先這個程式提示使用者輸入要複製的原始檔案的名字,以及要複製到的目標檔案的名字。 確保包括必要的錯誤檢查,包括確保原始檔案存在

(排序演算法)linux c語言實現快速排序氣泡排序的改進版

 快速排序演算法是對氣泡排序演算法的一種改進,氣泡排序是對單個元素的升降,快速排序是對所有元素的升降,不過這個升降是取了某一個標準的前提下,在本文程式碼中,就以a[i],其實就是以最左邊的元素為參考,比較交換之後,將這個參考元素放到分界的地方,即i的位置。 程式碼如下,裡面有比較詳細的

C語言實現householder變換數值計算方法課程設計

博主系某985資訊與計算科學大三,剛除錯成功,分享給正在學習數值計算的夥伴們,有問題還請大家批評指正。  #include <stdio.h> #include <stdlib.h> #include <math.h> #define N 100 s

BMP轉成C語言陣列檔案工具用image2lcd代替bmp2h exe

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

C語言】多項式加法mooc第七週測試題

  這個小題目吧我折磨的夠嗆,,主要在於特殊情況考慮不周,測試用例老是通不過。。 小結: 做法:用一個數組來儲存多項式,用下標表示冪次數,陣列元素值表示對應係數 輸出特殊格式考慮:係數和冪次數為0,1,-1的情況,負係數的對加號輸出的影響   題目內容:

C語言讀取BMP檔案同時支援Linux和Windows

C語言讀取BMP檔案最關鍵的是要理解結構體對齊。一般情況下,C語言的結構體在記憶體中會按照4位元組(32位)或者8位元組(64位)對齊。BMP檔案的資料頭結構體按照位元組排列,而且不能對齊,所以需要用預編譯巨集設定不能對齊。 另外注意Linux下一般用UTF-8編碼,但是Windows下用GB2

vhdl與c語言使用的區別個人體會

vhdl,是硬體描述性語言。C語言,是軟體程式語言。 從語言的基本語法方面來看,兩種語言,有很多共同點。什麼變數、順序、迴圈等語法方面都很多相同的地方。但是,如果你用C語言開發的思想來考慮VHDL語言的開發,就會報很多錯。這是為什麼呢? 經過一段時間的學習、使用和請教發現了

C語言】佇列演示佇列的幾個函式

/* * 佇列演示(佇列的幾個函式) * */ typedef struct { int arr[SIZE]; int head; //記錄最前面數字所在的下標 int tail; //記錄最後一個有效數字的下一個座標

C語言輾轉相除法歐幾里德演算法求最大公約數

演算法敘述: 設(a,b)表示a和b的最大公約數 若c為a/b的餘數(c=a%b) 則(a,b)=(b,c). #include<stdio.h> int gcd(int a,int b

C語言參數傳遞值傳遞、地址傳遞+二級指針

strong 才有 color 示意圖 mage 影響 -s include expr 參數傳遞 C語言參數傳遞一般分為:值傳遞和地址傳遞 (註意:C語言中沒有引用傳遞,C++才有引用傳遞,因為很多C語言環境是用C++編譯器編譯,使得C看起來支持引用傳遞,導致很多網上很

C語言中關鍵字作用const和static和extern

儲存型別關鍵字(4個): auto: 宣告自動變數,現在一般不用(auto int a;和int a;一樣) register: 宣告暫存器變數 static: 宣告靜態變數。該變數宣告時系統所分配的

C語言-計蒜客最後一個單詞的長度

一、問題給定由大寫,小寫字母和空格組成的字串,返回 最後 一個單詞的長度。如果輸入中不存在單詞,返回 00。注意:“單詞”是指不包含空格符號的字串例如:對於字串"hello World"(不帶引號), 那麼返回的結果是 55;對於字串"abc abc "(不帶引號),那麼返回

C語言實驗計算時間差小時,分鐘,秒

C語言實驗計算時間差(小時,分鐘,秒,只適用於同一天內) ```c #include <stdio.h> int main() { int hour1,min1,s1,ss1; int hour2,min2,s2,ss2; int

Android 圖片資原始檔命名規範非官方,參考

  對於Android的資原始檔的命名,Google官方並沒有提供統一的規範,民間的命名方式可謂是百花齊放、相容幷包,比較知名的有阿里巴巴開發規範,以及Blankj的AndroidStandardDevelop,以下內容是筆者參考了其他的一些命名規範,加上自己總結的一些命名方式所得。由於專