2006年北京師范大學(xué)452C語(yǔ)言考研試題_第1頁(yè)
2006年北京師范大學(xué)452C語(yǔ)言考研試題_第2頁(yè)
2006年北京師范大學(xué)452C語(yǔ)言考研試題_第3頁(yè)
2006年北京師范大學(xué)452C語(yǔ)言考研試題_第4頁(yè)
2006年北京師范大學(xué)452C語(yǔ)言考研試題_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2006年北京師范大學(xué)452C語(yǔ)言考研試題

1設(shè)圓的半徑片1.5,圓錐高h(yuǎn)=3,求圓的周長(zhǎng)和椎體體積。用scanf輸入數(shù)據(jù),輸出計(jì)算結(jié)

果。輸出時(shí)要求有文字說(shuō)明,取小數(shù)點(diǎn)后兩位數(shù)字。

2輸入兩個(gè)整數(shù),求它們相除的余數(shù)。用帶參的宏來(lái)實(shí)現(xiàn)。

3求100~200之間的全部素?cái)?shù)之和。

4計(jì)算圓周率的近似值,直到最后一項(xiàng)的絕對(duì)值小于10的-6為止,圓周率=4*

(1-1/3+1/5-1/7+1/9-....)

5寫一個(gè)函數(shù),判斷一字符串是否回文?;匚氖侵疙樞蚝偷棺x都一樣的字符串。

#include<stdio.h>

#include<string.h>

inthw(charf[25]){

inta,b;

a=0;//初始化a指向f的首地址

b=strlen(f)-1;〃指向f的最后一個(gè)

while(a<=b){

if(f[a++]!=f[b-]){

printf("No!\n");

return0;〃程序結(jié)束

printf("Yes!\n");

return1;//a>=b是正確的

intmain(){

charf[25];

intHW;//a,b=0;不需要

scanf("%s",f);

HW=hw(f);

return0;

)

6有一篇文章,共有3行文字,每行有80個(gè)字符。要求分別統(tǒng)計(jì)出其中英文大寫字母,數(shù)字

以及其它字符的個(gè)數(shù)。

7將一個(gè)磁盤中的二進(jìn)制文件復(fù)制到另一個(gè)磁盤中,兩個(gè)文件名隨命令行一起輸入。

#include<stdio.h>

voidmain()

{

FILE*from,*to;

charin[100],out[100];

printf("請(qǐng)輸入源文件名:\n");

scanf("%s",in);

printf("請(qǐng)輸入目標(biāo)文件名:\n");

scanf("%s",out);

if((from=fopen(in,"r"))==NULL)

(

printf("文件不存在!\n");

exit(O);

)

if((to=fopen(out,"w"))==NULL)

(

printf("創(chuàng)建目標(biāo)文件失??!\n");

exit(O);

)

printf("............");

while(!feof(from))

(

fputc(fgetc(from),to);

)

fclose(from);

fclose(to);

)

北京航空航天大學(xué)2010年碩士研究生入學(xué)考試試題

七.程序設(shè)計(jì)題(20分)

請(qǐng)編寫程序,該程序首先通過(guò)鍵盤輸入獲得整型數(shù)據(jù)a與n,然后計(jì)算sum=a+aa+aaa+……+

(共n項(xiàng)),最后輸出計(jì)算結(jié)果。例如:當(dāng)a=5,n=4時(shí),計(jì)算sum=5+55+555+5555.

A.程序設(shè)計(jì)題(15分)

在Unix操作系統(tǒng)中有一條命令,命令的功能是打印文本文件的最后n行。命令格式為:

tail[-n]filename

其中,tail為命令名;參數(shù)filename為文本文件名;參數(shù)[句表示要打印的行數(shù),該參數(shù)是可選

的,缺省值為10,既無(wú)此參數(shù)時(shí),表示打印文件的最后10行,例如,命令

tail-20example.txt

表示打印文本文件example.txt的最后20行。如果被打印的文本文件中行數(shù)少于n行或者少

于10行,該命令將打印文件中的所有行。

請(qǐng)用帶參數(shù)的main函數(shù)實(shí)現(xiàn)該程序。該程序應(yīng)該具有一定的錯(cuò)誤處理能力。例如,能夠處理

非法命令參數(shù)和非法文件名。

程序中可以使用以下C庫(kù)函數(shù):

intatoi(char*s)——將數(shù)字串轉(zhuǎn)換為相應(yīng)的整數(shù)

fgets(char*s,intn,FILE*fg)-----從文件中讀入一行;

void*malloc(unsignedsize).free-----申請(qǐng)和釋放內(nèi)存;

strlen-----計(jì)算字符串的長(zhǎng)度;

strcpy——講一個(gè)字符串拷貝到另一個(gè)字符串中;

除此之外,不允許使用其他庫(kù)函數(shù)。

提示:

1可以再命令行參數(shù)正確性分析過(guò)程中獲取被打印的文本文件名稱以及需要打印的行數(shù)等

信息。

2如果命令行分析正確,可以建立一個(gè)不帶頭結(jié)點(diǎn)的單向循環(huán)鏈表存放從文件中獨(dú)到的內(nèi)

2012計(jì)算機(jī)考研復(fù)試題回憶

一、編寫函數(shù)Eval,求解一元二次方程ax^2+bx+c=0的解,寫出每個(gè)參數(shù)的含義。

#include<iostream>//包含iostream的頭文件

#include<math.h>

#include<string>〃字符串處理函數(shù)

usingnamespacestd;

classFindRoot//定義類FindRoot

{

private:

floata,b,c;

doubler,q,x1,x2;〃定義數(shù)據(jù)成員類型

intjud;

public:

voidInput。;//輸入函數(shù)

voidDisplay。;//顯示函數(shù)

voidFind。;//求根函數(shù)

);

〃以上是類的聲明部分,以下是類的實(shí)現(xiàn)部分

voidFindRoot::lnput()

(

cout<<"這是一個(gè)求解ax2+bx+c=0的根的程序:"<<endl;〃總述程序

for(;;)

{

cout<<"輸入方程系數(shù)a:

cin?a;

if(a==O)

coutvv"錯(cuò)誤:a不能為0!!!:"?endl;

elsebreak;

}〃輸入a,并對(duì)a的可能情況進(jìn)行判斷

coutvv"輸入方程系數(shù)b:

cin?b;〃輸入b

coutvv"輸入方程系數(shù)c:

cin?c;〃輸入c

)

voidFindRoot::Find()〃定義求根的函數(shù)

(

floatdelta=b*b-4*a*c;〃定義求根公式的數(shù)據(jù)類型

if(delta<0)

{jud=O;

r=-b/(2*a);

q=sqrt(-delta)/(2*a);〃有兩個(gè)共輾復(fù)數(shù)根的情況

elseif(delta==O)

{

x1=-b/(2*a);

jud=1,有兩個(gè)相同的根的情況

)

else

{

x1=(-b+sqrt

(delta))/(2*a);

x2=(-b-sqrt

(delta))/(2*a);

jud=2;〃有兩個(gè)不同的根的情況

voidFindRoot::Display()〃定義顯示函數(shù)

(

switch(jud)

{

case0:

{cout?"x1="?r<<"+"?q?"i"?endl;

cout<<"x2="<<r<<"-"<<q<<"i"<<endl;}break;〃顯示有共輾復(fù)數(shù)根

時(shí)的解

case1:

cout?"x1=x2="?x1<<endl;break;〃顯示有——實(shí)根時(shí)的解

case2:

coutvv"x1="<vx1vv'\n'v<"x2="vvx2v<endl;break;〃顯示有兩不同根情況的解

voidmain()〃主函數(shù)

{

while(1)

{

FindRootf;//定義類型

f.lnput();

f.FindQ;

f.Display。;//以上各函數(shù)按順序執(zhí)行

cout<<"是否退出?(Y退出,其它任意鍵繼續(xù))"<<endl;〃程序是否退出

charm[2];charY[]="Y";chary[]="y";〃定義字符串

cin?m;

if(strcmp(m,Y)==O||strcmp(m,y)==O)

break;//如果退出血終止運(yùn)行

else

cout<<"請(qǐng)繼續(xù)..."<<endl;〃如果不退出則繼續(xù)執(zhí)行

二、輸入若干行文本,包括圓括號(hào),方括號(hào),字母,數(shù)字,以空符結(jié)束文本的輸入,找

出括號(hào)不匹配(包括圓括號(hào)、方括號(hào))的文本行并輸出。畫出程序的流程圖或者寫出程

序偽碼,寫出每個(gè)循環(huán)控制語(yǔ)句的用途

編寫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>

typedefstruct{

char*base;

char*top;

intsize;

}snode;

boolmatch(char*p){

snodes;

inti;

i=0;

s.base=(char*)malloc(20*sizeof(char));〃初始化一個(gè)棧

if(!s.base){

printf("內(nèi)存空間不足\n");

returnfalse;

)

s.top=s.base;

s.size=20;

while(p[i]!='\0'){〃開(kāi)始循環(huán)“\0”是字符串

的結(jié)束標(biāo)志

if((p[i]=='{')ll(P[i]=='DJ|(P[i]=='(')){//篩選['進(jìn)棧

if(s.top-s.base>=s.size){〃入棧判棧滿

printf("棧滿\n");

returnfalse;

)

*(s.top)=p[i];

s.top++;

i++;

}else{

switch(p[i]){

case')':if(s.base==s.top){〃遇至『)則

開(kāi)始匹配,要是棧頂元素能匹配成功,則繼續(xù),否則直接return,里面的一些條件可以自己

想想

returnfalse;

}elseif(*(--s.top)=='('){

i++;

continue;

}else{

returnfalse;

)

case'}':if(s.base==s.top){

returnfalse;

}elseif(*(--s.top)=='{'){

i++;

continue;

}else{

returnfalse;

}

case:if(s.base==s.top){

returnfalse;

}elseif(*(--s.top)=='['){

i++;

continue;

}else{

returnfalse;

)

default:i++;//剔除其他符號(hào)

continue;

if(s.top==s.base)〃匹配成功則最后???/p>

returntrue;

else

returnfalse;

)

intmain(){

charstr[50];

inti=0;

char*p;

p=str;

printf("請(qǐng)輸入字符串

gets(str);

if(match(p))

printf("匹配成功!\n");

else

printf("匹配失敗……\n");

return0;

中國(guó)礦業(yè)大學(xué)2007年碩士研究生入學(xué)試題

三.請(qǐng)將一下語(yǔ)法改寫成為switch語(yǔ)句。

if((s>0)&&(s<=10))

if((s>=3)&&(s<=6))x=2;

elseif((s>l)||(s>8))x=3;

elsex=l;

elsex=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分)

voidmain()

{

inti,j,s;

intcount=0;

for(i=1;i<100;i++)

{

if(i<10)

s=1;

elses=2;

j=i*i;

if(i==j%(int)pow(10,s))

(

printf("%d\n",i);

count++;

)

)

printf("totalnumber:%d\n",count);

應(yīng)該有5個(gè),1,5,6,25,76

五.通過(guò)賦初值按行順序給2*3的二維數(shù)組賦予236……等偶數(shù),然后按列的順序輸出該數(shù)

組。試編程。

voidmain()

(

intnum[2][3];

inti=0,j=0;

for(i=0;i<2;i++)

for(j=0;j<3;j++)

num[i][j]=2*((3*i)+j+1);

for(j=0;j<3;j++)

{

for(i=0;i<2;i++)

(

printf("%d,",num[i][j]);

中國(guó)礦業(yè)大學(xué)2008年C語(yǔ)言考研真題

三.編寫程序,對(duì)于給定的一個(gè)百分制成績(jī),輸出相應(yīng)的五分制成績(jī)。設(shè):90分以上'A',80~89分為‘B',

70~79分為'C',60~69分為'D',60分以下為‘E'。

四.每個(gè)蘋果0.6元,第一個(gè)買菜個(gè)蘋果,第二天開(kāi)始,每天買前一天的2倍,直至購(gòu)買的

蘋果個(gè)數(shù)達(dá)到不超過(guò)100的最大值。編寫程序求每天平均花多少錢?

#include<stdio.h>

main()

{

intx=2,n=0,a;

floatave=0,sum=0;

scanf("%d",&a);

for(x,n;x<=a;n++)

(

sum=sum+0.8*x;

x=2*x;

)

ave=sum/n;

printf("%.2f\n",ave);

return0;

)

五.若有說(shuō)明:inta[2][3]={{1,2,3},{4,5,6}}冼要將a的行和列的元素互換后存到另一個(gè)二維數(shù)組b中,試

編寫程序。

中國(guó)礦業(yè)大學(xué)(北京)采礦工程專業(yè)考研真題——計(jì)算機(jī)語(yǔ)言基礎(chǔ)2006

三.編程實(shí)現(xiàn)以下功能:讀入兩個(gè)運(yùn)算數(shù)(datal和data2)及一個(gè)運(yùn)算符(op),

計(jì)算表達(dá)式datalopdata2的數(shù)值,其中op可為+,—,*,I,(用switch語(yǔ)句實(shí)現(xiàn))

四.編寫程序,從鍵盤輸入6名學(xué)生的5門成績(jī),分別統(tǒng)計(jì)出每個(gè)學(xué)生的平均成績(jī)。

#include<stdio.h>

#defineM6

#defineN5

floataverage(float*p,intn)/*求平均分的函數(shù)*/

{floatsum=0.;

inti;

for(i=0;i<n;i++)

sum=sum+*(p+i);

returnsum/n;

)

voidmain()

{floatscore[M][N],ave[M];/*定義數(shù)組score⑹[5]用來(lái)放6個(gè)學(xué)生5門課成績(jī)*/

inti,j;

for(i=0;i<M;i++)

{printf("輸入第%d個(gè)學(xué)生的%d門課的成績(jī):",i+1,N);

for(j=0;j<N;j++)

scanf("%f",&score[i][j]);

printf("\n");

)

for(i=0;i<M;i++)

{ave[i]=average(score[i],N

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論