C語言考研試題_第1頁
C語言考研試題_第2頁
C語言考研試題_第3頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2006 年北京師范大學(xué)452C 語言考研試題1 設(shè)圓的半徑r=1.5,圓錐高h(yuǎn)=3,求圓的周長(zhǎng)和椎體體積。用scanf 輸入數(shù)據(jù),輸出計(jì)算結(jié)果。輸出時(shí)要求有文字說明,取小數(shù)點(diǎn)后兩位數(shù)字。2 輸入兩個(gè)整數(shù),求它們相除的余數(shù)。用帶參的宏來實(shí)現(xiàn)。3 求 100200 之間的全部素?cái)?shù)之和。4 計(jì)算圓周率的近似值,直到最后一項(xiàng)的絕對(duì)值小于 10 的-6 為止,圓周率=4*(1-1/3+1/5-1/7+1/9-)5 寫一個(gè)函數(shù),判斷一字符串是否回文。回文是指順序和倒讀都一樣的字符串。#include<stdio.h>#include<string.h>int hw(char f2

2、5) int a, b;a = 0;/初始化 a指向 f 的首地址b = strlen(f)-1; / 指向 f 的最后一個(gè)while (a <= b) if (fa+ != fb-) printf("No!n");return 0;/程序結(jié)束printf("Yes!n");return 1;/a>=b是正確的int main() char f25;int HW;/ a, b = 0;不需要scanf("%s", f);HW = hw(f);return 0;6 有一篇文章,共有 3 行文字,每行有 80 個(gè)字符。要求分別

3、統(tǒng)計(jì)出其中英文大寫字母,數(shù)字以及其它字符的個(gè)數(shù)。7 將一個(gè)磁盤中的二進(jìn)制文件復(fù)制到另一個(gè)磁盤中,兩個(gè)文件名隨命令行一起輸入。#include <stdio.h>void main()FILE *from,*to;char in100,out100;printf(" 請(qǐng)輸入源文件名: n");scanf("%s",in);printf(" 請(qǐng)輸入目標(biāo)文件名: n");scanf("%s",out);if(from=fopen(in,"r")=NULL)printf(" 文件不

4、存在! n");exit(0);if(to=fopen(out,"w")=NULL)printf(" 創(chuàng)建目標(biāo)文件失??! n");exit(0);printf(".");while(!feof(from)fputc(fgetc(from),to);fclose(from);fclose(to);北京航空航天大學(xué)2010 年碩士研究生入學(xué)考試試題七程序設(shè)計(jì)題( 20 分)a 與 n,然后計(jì)算 sum=a+aa+aaa+ +請(qǐng)編寫程序,該程序首先通過鍵盤輸入獲得整型數(shù)據(jù)(共 n 項(xiàng)),最后輸出計(jì)算結(jié)果。例如:當(dāng)a=5,n=4 時(shí)

5、,計(jì)算 sum=5+55+555+5555.八程序設(shè)計(jì)題( 15 分)在 Unix 操作系統(tǒng)中有一條命令,命令的功能是打印文本文件的最后n 行。命令格式為:tail-nfilename其中 ,tail 為命令名;參數(shù) filename 為文本文件名; 參數(shù) -n 表示要打印的行數(shù),該參數(shù)是可選的,缺省值為 10,既無此參數(shù)時(shí),表示打印文件的最后 10 行,例如,命令tail-20example.txt表示打印文本文件example.txt 的最后 20 行。如果被打印的文本文件中行數(shù)少于n 行或者少于 10 行,該命令將打印文件中的所有行。請(qǐng)用帶參數(shù)的 main 函數(shù)實(shí)現(xiàn)該程序。該程序應(yīng)該具有

6、一定的錯(cuò)誤處理能力。例如,能夠處理非法命令參數(shù)和非法文件名。程序中可以使用以下C 庫函數(shù):int atoi(char *s)將數(shù)字串轉(zhuǎn)換為相應(yīng)的整數(shù) fgets(char *s,int n, FILE *fg) 從文件中讀入一行; void *malloc(unsigned size).free申請(qǐng)和釋放內(nèi)存;strlen計(jì)算字符串的長(zhǎng)度;strcpy講一個(gè)字符串拷貝到另一個(gè)字符串中;除此之外,不允許使用其他庫函數(shù)。提示:1 可以再命令行參數(shù)正確性分析過程中獲取被打印的文本文件名稱以及需要打印的行數(shù)等信息。2 如果命令行分析正確,可以建立一個(gè)不帶頭結(jié)點(diǎn)的單向循環(huán)鏈表存放從文件中獨(dú)到的內(nèi)容201

7、2 計(jì)算機(jī)考研復(fù)試題回憶一、編寫函數(shù) Eval,求解一元二次方程ax2+bx+c=0 的解,寫出每個(gè)參數(shù)的含義。#include<iostream> / 包含 iostream 的頭文件#include<math.h>#include<string>/ 字符串處理函數(shù)using namespace std;class FindRoot/ 定義類 FindRootprivate:float a,b,c;double r,q,x1,x2;/ 定義數(shù)據(jù)成員類型intjud;public:void Input();/ 輸入函數(shù)void Display();/ 顯示函

8、數(shù)void Find();/ 求根函數(shù);/以上是類的聲明部分,以下是類的實(shí)現(xiàn)部分void FindRoot:Input()cout<<" 這是一個(gè)求解 ax2+bx+c=0 的根的程序: "<<endl;/ 總述程序for(; ;)cout<<" 輸入方程系數(shù) a:"cin>>a;if(a=0)cout<<" 錯(cuò)誤 :a 不能為 0!:"<<endl;else break;/ 輸入 a,并對(duì) a 的可能情況進(jìn)行判斷cout<<" 輸入方程系數(shù)

9、 b:"cin>>b;/ 輸入 bcout<<" 輸入方程系數(shù) c:"cin>>c;/ 輸入 cvoid FindRoot:Find()/定義求根的函數(shù)float delta=b*b-4*a*c;/ 定義求根公式的數(shù)據(jù)類型if(delta<0)jud=0;r=-b/(2*a);q=sqrt(-delta)/(2*a);/ 有兩個(gè)共軛復(fù)數(shù)根的情況else if(delta=0)x1=-b/(2*a);jud=1;/ 有兩個(gè)相同的根的情況elsex1=(-b+sqrt(delta)/(2*a);x2=(-b-sqrt(delt

10、a)/(2*a);jud=2;/ 有兩個(gè)不同的根的情況void FindRoot:Display()/定義顯示函數(shù)switch(jud)case 0:cout<<"x1="<<r<<"+"<<q<<"i"<<endl; cout<<"x2="<<r<<"-"<<q<<"i"<<endl;break;/ 顯示有共軛復(fù)數(shù)根時(shí)的解case

11、1:cout<<"x1=x2="<<x1<<endl;break;/ 顯示有一實(shí)根時(shí)的解 case 2:cout<<"x1="<<x1<<'n'<<"x2="<<x2<<endl;break;/顯示有兩不同根情況的解void main()/ 主函數(shù)while(1)FindRoot f;/ 定義類型f.Input();f.Find();f.Display();/ 以上各函數(shù)按順序執(zhí)行cout<<&quo

12、t; 是否退出? (Y 退出,其它任意鍵繼續(xù) )"<<endl;/ 程序是否退出 char m2;char Y="Y"char y="y"/ 定義字符串cin>>m;if(strcmp(m,Y)=0|strcmp(m,y)=0)break;/ 如果退出則終止運(yùn)行elsecout<<" 請(qǐng)繼續(xù) "<<endl;/ 如果不退出則繼續(xù)執(zhí)行二、輸入若干行文本,包括圓括號(hào),方括號(hào),字母,數(shù)字,以空符結(jié)束文本的輸入,找出括號(hào)不匹配(包括圓括號(hào)、方括號(hào))的文本行并輸出。畫出程序的流程圖或者寫

13、出程序偽碼,寫出每個(gè)循環(huán)控制語句的用途編寫 c/c+ 函數(shù),驗(yàn)證一個(gè)字符串形式的表達(dá)式中的括號(hào)是否匹配,其中括號(hào)包括圓括號(hào)、方括號(hào)和花括號(hào)。 (2) 編寫 main 函數(shù)從鍵盤讀入表達(dá)式,并調(diào)用你編寫的函數(shù)。#include<stdio.h>#include<stdlib.h>typedef structchar *base;char *top;int size;snode;bool match(char *p)snode s;int i;i=0;s.base=(char *)malloc(20 * sizeof(char);if(!s.base)printf(&quo

14、t; 內(nèi)存空間不足 n");return false;/初始化一個(gè)棧s.top=s.base;s.size=20;while(pi!='0')/開始循環(huán)“0”是字符串的結(jié)束標(biāo)志if(pi='')|(pi='')|(pi='(') if(s.top-s.base>=s.size)/篩選(、進(jìn)棧/入棧判棧滿printf(" 棧滿 n");return false;*(s.top)=pi;s.top+;i+;elseswitch(pi)case ')' : if(s.base=s.to

15、p)/遇到 )則 開始匹配,要是棧頂元素能匹配成功,則繼續(xù),否則直接return ,里面的一些條件可以自己想想return false;else if(*(-s.top)='(')i+;continue;elsereturn false;case '' : if(s.base=s.top)return false;else if(*(-s.top)='')i+;continue;elsereturn false;case '' : if(s.base=s.top)return false;else if(*(-s.top)=

16、9;')i+;continue;elsereturn false;default : i+;/剔除其他符號(hào)continue;if(s.top=s.base)/匹配成功則最后棧空return true;elsereturn false;int main()char str50;int i=0;char *p;p=str;printf(" 請(qǐng)輸入字符串 :");gets(str);if(match(p)printf(" 匹配成功 !n");elseprintf(" 匹配失敗 n");return 0;中國(guó)礦業(yè)大學(xué) 2007 年碩士

17、研究生入學(xué)試題三請(qǐng)將一下語法改寫成為 switch 語句。if (s>0)&&(s<=10)if(s>=3)&&(s<=6)x=2;else if(s>1)|(s>8)x=3;else x=1;else x=0;四 試編程序,找出 1 至 99 之間的全部同構(gòu)數(shù)。同構(gòu)數(shù)是這樣一組數(shù):它出現(xiàn)在平方數(shù)的右邊。例如 5 是 25 右邊的數(shù), 25 是 625 右邊的數(shù), 5 和 25 都是同構(gòu)數(shù) .(25 分)void main()int i,j,s;int count=0;for(i=1;i<100;i+)if(i<1

18、0)s=1;else s=2;j=i*i;if(i=j%(int)pow(10,s)printf("%dn",i);count+;printf("total number:%dn",count);應(yīng)該有 5 個(gè), 1,5,6,25,76五通過賦初值按行順序給 2*3 的二維數(shù)組賦予 2 3 6等偶數(shù), 然后按列的順序輸出該數(shù)組。試編程。void main()int num23;int i=0,j=0;for(i=0;i<2;i+)for(j=0;j<3;j+)numij = 2*(3*i)+j+1);for(j=0;j<3;j+)for

19、(i=0;i<2;i+)printf("%d,",numij);中國(guó)礦業(yè)大學(xué) 2008 年 C 語言考研真題三編寫程序, 對(duì)于給定的一個(gè)百分制成績(jī),輸出相應(yīng)的五分制成績(jī)。設(shè):90 分以上 A ,8089 分為B ,7079分為 C, 6069 分為 D ,60 分以下為E。四每個(gè)蘋果 0.6 元,第一個(gè)買菜個(gè)蘋果,第二天開始,每天買前一天的蘋果個(gè)數(shù)達(dá)到不超過 100 的最大值。編寫程序求每天平均花多少錢?2 倍,直至購(gòu)買的#include <stdio.h>main()int x=2,n=0,a;float ave=0,sum=0;scanf("

20、%d",&a);for(x,n;x<=a;n+)sum=sum+0.8*x;x=2*x;ave=sum/n;printf("%.2fn",ave);return 0;五若有說明:int a23=1,2,3,4,5,6;先要將a 的行和列的元素互換后存到另一個(gè)二維數(shù)組b 中,試編寫程序。中國(guó)礦業(yè)大學(xué) (北京 )采礦工程專業(yè)考研真題 計(jì)算機(jī)語言基礎(chǔ) 2006 三編程實(shí)現(xiàn)以下功能:讀入兩個(gè)運(yùn)算數(shù)( data1和 data2)及一個(gè)運(yùn)算符( op),計(jì)算表達(dá)式 data1 op data2 的數(shù)值,其中 op 可為 +, * ,/,(用 switch 語句實(shí)

21、現(xiàn))四編寫程序,從鍵盤輸入 6 名學(xué)生的 5 門成績(jī),分別統(tǒng)計(jì)出每個(gè)學(xué)生的平均成績(jī)。# include <stdio.h># define M 6# define N 5float average(float *p,int n)/*求平均分的函數(shù) */ float sum=0.; int i;for(i=0;i<n;i+)sum=sum+*(p+i);return sum/n;void main() float scoreMN,aveM; /* 定義數(shù)組 score65 用來放 6 個(gè)學(xué)生 5 門課成績(jī) */ int i,j;for(i=0;i<M;i+)printf(" 輸入第 %d 個(gè)學(xué)生的 %d 門課的成績(jī): ",i+1,N);for(j=0;j<N;j+)scanf("%f",&scoreij);printf("n");for(i=0;i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論