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,以下內容是筆者參考了其他的一些命名規範,加上自己總結的一些命名方式所得。由於專