2023年C語言二級考試復(fù)習(xí)題_第1頁
2023年C語言二級考試復(fù)習(xí)題_第2頁
2023年C語言二級考試復(fù)習(xí)題_第3頁
2023年C語言二級考試復(fù)習(xí)題_第4頁
2023年C語言二級考試復(fù)習(xí)題_第5頁
已閱讀5頁,還剩118頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

“C語言程序設(shè)計“二級考試復(fù)習(xí)資料

二級考試大綱............................................5

模擬試題一..............................................7

模擬試題二..............................................13

模擬試題三..............................................19

模擬試題四..............................................28

模擬試題五..............................................36

模擬試題六..............................................43

補充:文獻.............................................49

二級考試大綱

(QBASIC.FORTRAN>VB.VF、C.FoxBASE+語言程序設(shè)計)

基本要求

1.具有計算機的基本知識。

2.了解操作系統(tǒng)的基本概念,掌握常用操作系統(tǒng)的使用。

3.掌握基本數(shù)據(jù)結(jié)構(gòu)和常用算法,熟悉算法描述工具一流程圖的使用。

4.能純熟地使用一種高級語言或數(shù)據(jù)庫語言編寫程序、調(diào)試程序。

考試內(nèi)容

一、基礎(chǔ)知識與基本操作

(一)基礎(chǔ)知識

1.計算機系統(tǒng)的重要技術(shù)指標(biāo)與系統(tǒng)配置

2.計算機系統(tǒng)、硬件、軟件及其互相關(guān)系。

3.微機硬件系統(tǒng)的基本組成(涉及:中央解決器(運算器與控制器),內(nèi)存儲器(RAM與ROM),外

存儲器(硬盤、軟盤與光盤),輸入設(shè)備(鍵盤與鼠標(biāo)),輸出設(shè)備(顯示器與打印機)。

4.軟件系統(tǒng)的組成,系統(tǒng)軟件與應(yīng)用軟件;軟件的基本概念,文檔;程序設(shè)計語言與語言解決程序(匯

編程序、編譯程序、解釋程序),

5.計算機的常用數(shù)制(二進制、十六進制與十進制之間的轉(zhuǎn)換);數(shù)據(jù)基本單位(位、字節(jié)、字)。

6.計算機的安全操作;計算機病毒的防治。

7、計算機網(wǎng)絡(luò)的一般知識。

8、多媒體技術(shù)的一般知識。

(-)DOS的基本操作

1.操作系統(tǒng)的基本功能與分類。

2.DOS操作系統(tǒng)的基本組成。

3.文獻、FI錄、途徑的基本概念。

4.常用DOS操作,涉及:

初始化與啟動;

文獻操作(TYPE,COPY,DEL,REN,XCOPY,ATTRIB);

目錄操作(DIR,MD,Cl),RD,TREE,PATH);

磁盤操作(FORMAT,DISKCOPY,CHKDSK);

功能操作(VER,DATE,TIME,CLS,PROMPT,HELP):

批解決(批解決文獻的建立與執(zhí)行,自動批解決文獻);

輸入輸出改向。

(三)Windows的基本操作

1.Windows的特點、基本構(gòu)成及其運營環(huán)境。

2.Windows用戶界面的基本元素。涉及:窗口、圖標(biāo)、菜單、對話框、按鈕、光標(biāo)等。

3.Windows基本操作。涉及:啟動與退出,鼠標(biāo)操作,窗口操作,圖標(biāo)操作,菜單操作,對話框操

作,

二、程序設(shè)計

1.能運用結(jié)構(gòu)化程序設(shè)計方法編寫程序。

2.掌握基本數(shù)據(jù)結(jié)構(gòu)和常用算法。

3.能純熟使用一種高級語言或一種數(shù)據(jù)庫語言(共有QBASIC.FORTRON、C以及FoxBASE+、VB.VF等六種語

言:考生任選其中一和L各種語言的考試內(nèi)容附后。)

二、上機操作

在指定的時間內(nèi)使用微機完畢下述操作:

1.完畢指定的計算機基本操作(涉及機器啟動和操作命令的使用)。

2.按給定規(guī)定編寫和運營程序。

3.調(diào)試程序,涉及對給出的不完善的程序進行修改和補充,使之能得到對的的結(jié)果,

C語言程序設(shè)計考試大綱

(-)c語言的結(jié)構(gòu)

1.程序的構(gòu)成,MAIN函數(shù)和其他函數(shù)。

2.頭文獻、數(shù)據(jù)說明、函數(shù)的開始和結(jié)束標(biāo)志。

3.源程序的書寫格式。

4.C語言的風(fēng)格。

(二)數(shù)據(jù)類型及其運算

LC的數(shù)據(jù)類型(基本類型、構(gòu)造類型、指針類型、空類型)及其定義方法。

2.C運算符的種類、運算優(yōu)先級和結(jié)合性。

3.不同類型數(shù)據(jù)間的轉(zhuǎn)換與運算。

4.表達(dá)式類型(賦值表達(dá)式、算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式、逗

號表達(dá)式)和求值規(guī)則。

(三)基本語句]

1.表達(dá)式語句,空語句,復(fù)合語句。

2.數(shù)據(jù)的輸入與輸出,輸入輸出函數(shù)的調(diào)用。

3.復(fù)合語句。

4.GOTO語句和語句標(biāo)號的使用。

(四)選擇結(jié)構(gòu)程序設(shè)計

1.用1卜,語句實現(xiàn)選擇結(jié)構(gòu)。

2.用SWITCH語句實現(xiàn)多分支選擇結(jié)構(gòu)。

3.選擇結(jié)構(gòu)的嵌套

(五)循環(huán)結(jié)構(gòu)程序設(shè)計

1.FOR循環(huán)結(jié)構(gòu)。2.WHILE和DOWHILE循環(huán)結(jié)構(gòu)。

3、CONTINUE語句和BREAK語句。4、循環(huán)的嵌套。

(六)數(shù)組的定義和引用

1、一維數(shù)據(jù)和多維數(shù)組的定義、初始化和引用。2、字符串與字符數(shù)組。

(七)函數(shù)

1、庫函數(shù)的對的調(diào)用。2、函數(shù)的定義方法。

3、函數(shù)的類型和返回值。4、形式參數(shù)與實在參數(shù),參數(shù)值的傳遞。

5、函數(shù)的對的調(diào)用,嵌套調(diào)用,遞歸調(diào)用。6、局部變量和全局變量。

7、變量的存儲類別9自動、靜態(tài),寄存器、外部),變量的作用域和生存期。

8、內(nèi)部函數(shù)與外部函數(shù)。

(A)編譯預(yù)解決

1、宏定義:不帶參數(shù)的宏定義;帶參數(shù)的宏定義。2、〃文獻包含〃解決。

(九)指針

1、指針與指針變量的概念,指針與地址運算符。

2、變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針以及指向變量、數(shù)組、字符串、函數(shù)、結(jié)構(gòu)體的指針變量。

通過指針引用以上各類型數(shù)據(jù)。

3、用指針作函數(shù)參數(shù)。

4、返回指針值的指針函數(shù)。

5、指針數(shù)組,指向指針的指針,MAIN函數(shù)的命令行參數(shù).

(十)結(jié)構(gòu)體(即〃結(jié)構(gòu)”)與共用體(即“聯(lián)合〃)。

1、結(jié)構(gòu)體和共用體類型數(shù)據(jù)的定義方法和引用方法。

2、用指針和結(jié)構(gòu)體構(gòu)成鏈表,單向鏈表的建立、輸出、刪除與插入。

(4■?一)位運算

1、運算符的含義及使用。2、單的位運算。

(十二)文獻操作

只規(guī)定緩沖文獻系統(tǒng)(即高級磁盤I/O系統(tǒng)),對非標(biāo)準(zhǔn)緩沖文獻系統(tǒng)(即低檔磁盤I/O系統(tǒng))不規(guī)定。

1、文獻類型指針(FILE類型指針)。

2、文獻的打開與關(guān)閉(FOPEN,FCLOSE)。

3、文獻的讀寫(FPUTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTE,FSCANF函數(shù)),文獻的定位

(REWIND,FSEEK函數(shù))

模擬試題一18

第一部分軟件技術(shù)基礎(chǔ)

一、是非判斷題。

1.數(shù)組是一種長度固定的線型表,可以對數(shù)組進行插入和刪除運算。()

2.白盒測試時,測試者不考慮程序的內(nèi)部結(jié)構(gòu)和特性。)

3.對■線型表中的數(shù)組進行二分查找,必須規(guī)定數(shù)據(jù)元素右限且有序。()

4.實存管理技術(shù)中,每個分區(qū)內(nèi)的地址是連續(xù)的。()

5.文獻的目錄結(jié)構(gòu)是一種線型結(jié)構(gòu)。()

6.在面向?qū)ο蟮某绦蛟O(shè)計中,對象的動作取決于發(fā)送給該對象的消息。()

7.虛擬設(shè)備是指將大容量的共享設(shè)備的一部分空間來代替實際的獨占設(shè)備。()

8.在結(jié)構(gòu)化程序設(shè)計中,N-S圖是用于具體設(shè)計的工具之一。()

9.在操作系統(tǒng)的設(shè)備管理中,打印機被當(dāng)作是一種共享設(shè)備。()

10.分時操作系統(tǒng)的重要特性之一是提高計算機系統(tǒng)的實時性。()

二、單項選擇題。

1.進程由程序塊、()和數(shù)據(jù)塊三部分組成。

(A)設(shè)備控制塊(B)作業(yè)控制塊(C)文獻控制塊(D)進程控制塊

2.以下哪個不是死鎖產(chǎn)生的必要條件()

(A)互斥條件(B)所有分派條件C)環(huán)路條件(D)不可剝奪條件

3.虛擬存儲器的作用是允許程序直拆接訪問比內(nèi)存更大的地址空間,它通常使用()作為它的一個重

要組成部分。(A)軟盤1B)寄存器(C)硬盤(D)CD-ROM

4.線性鏈表中的結(jié)點一股有3種信息:直接前趨、數(shù)據(jù)域和直接后繼,屬于單向鏈表所獨有的是()。

(A)直接前趨和數(shù)據(jù)域(B)直接前趨和直接后繼

(0數(shù)據(jù)域和直接后繼(D)直接前趨、數(shù)據(jù)域和直接后繼

5.白盒測試是根據(jù)程序的()來設(shè)計測試用例。(A)內(nèi)部邏輯(B)內(nèi)部數(shù)據(jù)(C)功能(D)性能

第二部分C與C++語言程序設(shè)計

一、單項選擇

1.有下列程序段,請選擇().

chara[10]=w3821631

char*p=a;

printf(a%cw,p[l]-'O');

(A)輸出格式錯誤語法錯誤(C)輸出8(D)輸出ASCII碼為8的字符

2.下列程序的輸出是()>

#include”stdio.h"

voidmain()

{inta=-l,b=4,k;

k=(a++<=0)&&(!(b—<=0));

printf(M%d,%d,%dw,k,a,b);}

(A)0,0,3(B)0,1,2(C)l,1,2(D)l,0,3

3.設(shè)x為整型變量,不能對的表達(dá)數(shù)學(xué)關(guān)系:7<x<ll的C語言表達(dá)式是()。

(A)7<x<ll(B)x==8||x==9||x=10(C)x>7&&x<ll(D)!(x<=7)&&(x>=ll)

4.下列程序段中,對的的是()。

(A)intx=0,y=10;

switch(x)

{casey:x++;break;

casey+2:x+=10;break;

casey-1:x=-7;break;}

(D)intx=0,y;

(C)ftdefiney20

switch(x)

intx=10,z;

{case3:

switch(x)

{case12:z=3;break;

casey+1:z+=10;break;

casey-8:y-=3;break;

)

5.定義如下數(shù)組s:chars[81];

若準(zhǔn)備將字符串"Thisisastring.w記錄下來,()是錯誤的輸入語句。

(A)gets(s+2);(B)scanf(M%20sw,s);

(C)for(i=0;i<17;i++)(D)while(c=getchar()!=,\nf)

s[i]=getchar();s[i++]=c;

6.下述函數(shù)aaa的功能是()。

intaaa(char*s)

{char*t=s;

while(*t++);

returnt-s;}

(A)求字符串長度(B)比較兩個串的大?。–)將串s復(fù)制到串t中(D)以上三種說法均不對

7.下述程序的輸出結(jié)果是(:)。(A)ll,10(B)ll,ll(010,10(D)10:11

intx=10;

inty=x++;

printf(,(x++,y),y++);

8.若有說明inti,j=2,*p=&i;,則能完畢i=j賦值功能的語句是()o

(A)i=*p;(B)*p=j;(C)i=*j;(D)i=**p;

9.main()

{uniondata

{inti;charch;

floatf;floatx:

(a;

a.i=l;a.ch='a';a.f=l.5;

printf('%f,%f\nw,a.f,a.x):}

程序運營結(jié)果是()<1(A)1.5(B)1.5,1(01.5,1.5(D)l,1.5

10.已知結(jié)構(gòu)體:

structperson

(charname[20];intage;};

下列操作對的的是()

(A)structpersonperson1:{“Tom”,20};

(B)structpersonpersonl;pcrsonl={uTom,,,20);

(C)structpersonpersonl;scanf(a%s%d,*,name,&age);

(D)structpersonpersonl={"Tom”,20};printf("%s%d",personl);

二、讀程序回答問題。

1.運營下列程序后,test中的結(jié)果為()。

^include"stdio.h"

#include“string,h”

voidfun(char*fname,char*st)

{FILE*myf;

inti;

myf=fopen(fname,Mw");

for(i=0;Kstrlen(st);i++)

fputc(st[i],myf);

fclose(myf);}

voidmain()

{fun("test","newworld,r);

fun(“test","hello");}

(A)newworld(B)ncwworldhcllo(C)hello(D)hello,world

2.讀下列程序,選擇對的的輸出結(jié)果。

#include<stdio.h>

voidpoint1(intx,inty)

{intt=l;

x=x+t;y=y+t;

return;}

voidpoint2(int*x,int*y)

{intt=l;

*x=*x+t;*y=*y+t;

return;}

voidpoint3(char*p)

{p+=l;

*p=*p+1;}

voidmain()

{charb[4]={匕','c','s','f'},*pt=b;

intx=3,y=4;

pointl(x,y);

1)printf(a%d,%d\n,*,x,y);

point2(&x,&y);

2)printf(**%d,%d\nw,x,y);

point3(pl);

3)printf(<<%c\nn,*(pt+l));

}

1)(A)4,5(B)3,4(04,3(D)5,4

21(A)4,5(B)3,4(04,3(0)5,4

3)(A)c(B)s(C)acsf(D)d

3.有下列程序

#include<stdio.h>

intfunc(intx)

{inty=0;

staticz=3;

x=z++,y++;

return(x);)

voidmain()

{inta=2,i,b;

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

b=func(a++);

printf("%d\n",b);}

⑴執(zhí)行后輸出的結(jié)果是()。(A)4(B)5(03(D)0

⑵假如將語句LI:staticz=3;改為LI:intz=3;程序執(zhí)行后輸出的結(jié)果是()。

(A)4(B)5(C)3(D)0

4.寸include”stdio.hw

char*cat(char*strl,char*str2)

{char*pt;

for(pt=strl;*pt!=,\0';pt++);

while(*str2!=,\0')

*pt++=*str2++;

*pt=>\0';

return(pt);}

voidmain()

{char*p,sl[30]=w210",s2[30]="45”;

p=cat(si,s2);p=cat(si,s2);

printf(M%d\nw,p_sl);)

(D該程序運營的結(jié)果為()o(A)5(B)6(07(D)8

⑵假如去掉*pt='\0';程序運營的結(jié)果為()。(A)5(B)6(07(D)8

5.讀程序,回答問題。

#include<stdio.h>

voidmain()

{char*s=M12134211w;

inta=0,b=0,c=0,d=0;

intk;

for(k=0;s[k];k++)

switch(s[k])

{default:d++;

case'1':a++;

case’3':c++;

case'2':b++;

)

printf(ua=%d,b=%d,c=%d,d=%d",a,b,c,d);}

(1)該程序運營結(jié)束時,k的值是()o(A)7(B)8(09(D)10

⑵該程序的輸出結(jié)果是()。

(A)a=4,b=2,c=l,d=l(B)a=4,b=9,c=3,d=1(C)a=5,b=8,c=6,d=l(D)a=8.n=8.c=8,d=8

6.讀程序,回答問題。

#include<stdio.h>

voidfun(char**m);

voidmain()

{char*s□:{“BASIC","FORTRAN","C"};

char**p=s;

fun(p);

puts(*p);}

voidfun(char**m)

{++m;

printf("%s,”,*m);}

(1)語句puts(*p);輸出結(jié)果是()o(A)BASIC(B)C(C)SICA(D)FORTRAN

⑵語句printf(飛s,”.*m);輸出結(jié)果是()。(A)BASIC,(B)SICA,(C)FORTRAN,(D)BASIC,

7.讀程序,回答問題。

#include<stdio.h>

voidswap(int*pl,int*p2)

{int*temp;

temp=pl;pl=p2;p2=temp;

4:printf("%d,%d\n”,*pl,*p2);

}

voidmain()

{inta=4,b=5,*pointerl,*pcinter2;

pointerl=&a;pointcr2=&b;

swap(pointeri,pointer2);

10:printf(w%d,%d\nw,*pcinterl,*pointer2);)

(1)讀程序swap函數(shù)中的printf的輸出為()°(A)4,5(B)6,5(C)5,4(D)5,6

(2)該程序main函數(shù)中的printf的輸出為()。(A)4,5(B)6,5(05,4(D)5,6

8.讀程序,回答問題。

#includenstdio.h"

unionun

{inti;

charc[2];

};

voidmain()

{unionunx;

x.c[0]=10;

x.c[l]=l;

printf(a\n%dn,x.i);}

程序執(zhí)行后的輸出結(jié)果為()。(A)11(B)266(0265(D)138

二.程序填空

1.下述程序在數(shù)組中同時查找最大元素下標(biāo)和最小元素下標(biāo),分別存放在main函數(shù)的變量max

和min中,請?zhí)羁铡?/p>

#includo<stdio.h>

voidfind(int*a,intn,int*max,int*min)

{inti;

*max=*min=0;

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

if(a[i]>a[*max])

else

if(a[i]<a[*min])

return;

)

voidmain()

{inta[]={5,8,7,6,2,7,3);

intmax,min:

find();

printf(rt\n%d,%d,>,niax,min);}

2.輸入6個用戶名和密碼,用戶名為15個字符以內(nèi)的字符串,密碼為5個字符的定長字符串。

新建一個文獻,將用戶名和密碼以結(jié)構(gòu)體的形式存入,規(guī)定密碼存放時將每個字符的ASCII碼加

1。

ftinclude<stdio.h>

main()

{structperson

(charname[16];

charcode[6];

(per;

intk,j;

charfname[20];

scanf(a%sw,fname):

if((fp=fopen(fname,**wbM))==NULL)

{printf("failcreatfailed!\n");

exit(0);

)

for(k=0;k<6;k++)

{scanf();

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

fwrite(&per,sizeof(structperson),1,fp);

(

fclose(fp);}

3.下面程序的功能是三個字符串中找出最小的。

力include”stdio.hw

并include“string,h”

main()

{chars[20],str[3][20];

inti;

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

strcpy(s,(strcmp(str[0]?str[l])<0?str[0]:str[l]));

if(<0)

strcpy(s,str[2]);

printf(u%s\nw,);)

4.下述程序通過命令行參數(shù)將任意多個文本文獻連接到第一.個命令行參數(shù)所命名的文獻中。文

獻每行字符的個數(shù)小于BIFFSIZE。請?zhí)羁铡?/p>

ttinclude<stdio.h>

^defineBUFFSIZE128

voidmain(intargc,char**eirgv)

{FILE*fp,*fg;

chars[BUFFSIZE];

if(argc<2)

{puts("Haven'tcatfilename”);

return;)

if(fp=fopen(*++argv,Ma+"))=NULL)

{printf("can\'topenfile%sn,*argv);

return;}

argc=argc_2;

whileGirgc―)

{if((fg=fopen())==NULL)

{printf("can\'topenfile%sn,*argv);

return;)

while()

fputs(,fp);

fclose(fp);}

fclose(fg);}

5.已知head指向單鏈表的第一個結(jié)點,以下程序調(diào)用函數(shù)print輸出這一單向鏈表,請?zhí)羁铡?/p>

#include“stdlib.h”

#include"stdio.h"

structstudent

(intinfo;

structstudent*link;

);

voidprint(structstudent*head)

{structstudent*p;

pirntf(rt\nthelinklistis:n);

p=head;

if(head!:NULL)

do{printf("%d",);

P=;

)

while(;;

}

main()

{structstudent*head;

print(head)

……)

模擬試題二19

第一部分軟件技術(shù)基礎(chǔ)

一、是非判斷題(每小題1分,共10分)

1.在目前,用于保證軟件質(zhì)量的重要手段是進行軟件測試。()

2.使用DMA方式傳送數(shù)據(jù)期間不需要CPU干預(yù)。()

3.線性順序隊列會產(chǎn)生“假溢出”,而線性循環(huán)隊列則不會。()

4.對同一種算法,用高級語言編寫的程序比用低檔語言編寫的程序運營速度快。()

5、在線性表中,數(shù)據(jù)的存儲方式有順序和鏈表兩種。()

6.進程由程序塊、文獻控制塊和數(shù)據(jù)塊三部分組成。()

7、在面向?qū)ο蟮某绦蛟O(shè)計中,派生類只能從一個基類產(chǎn)生。()

8、操作系統(tǒng)是用戶和硬件的接口。()

9、個人計算機中可配置的最大內(nèi)存容量受地址總線位數(shù)的限制。()

10,軟件維護中最困難的問題是軟件配置不全。()

二、單項選擇題(每小題1分,共5分)

1.在排序法中,從未排序序列中依次取出元素,與已排序序列中的元素作比較,將其放入已排序序列的

對的位置稱為OoA.選擇排序B.快速排序C.插入排序D.冒泡排序

2.有X、Y、Z三個元素依次入棧,不也許的出棧順序是()。A.Z,Y,XB.Z,X,YC.Y,X,ZD.X,Y,Z

3.進程的狀態(tài)是可以轉(zhuǎn)換的,而以下哪個狀態(tài)轉(zhuǎn)換是不也許的()。

A.就緒狀態(tài)-執(zhí)行狀態(tài)B.執(zhí)行狀態(tài)-就緒狀態(tài)C.阻塞狀態(tài)-就緒狀態(tài)D.等待狀態(tài)-執(zhí)行狀態(tài)

4.線性鏈表的地址()。A.必須連續(xù)B.部分地址必須連續(xù)C.一定不連續(xù)D.連續(xù)與否均可以

5.在軟件測試中,()重要分析程序的內(nèi)部結(jié)構(gòu)。A.白盒法B.黑盒法C.因果圖法D.錯誤推測法

第二部分C與C++語言程序設(shè)計

一、單項選擇題(每小題1分,共10分)

1.時下列程序段的描述對的的是1)。

#include<iostream.h>

intFun(intx,inty)

(returnx+y;}

voidmain()

{inti=10;

cout?Fun(i++,i)<<endl;)

(A)程序輸出結(jié)果不擬定(B)程序輸出結(jié)果是20(C)程序輸出結(jié)果是21(D)程序輸出結(jié)果是22

2.下列描述對的的是()。

(A)C++程序中使用cout時需要使用到預(yù)解決命令#includc〈iostrcam.h>

(B)C++程序必須有return語句

(0C++程序中的變量必須定義在主程序內(nèi)部

(D)C++程序中所有使用的符號常量可以不進行定義

3.下述程序的輸出結(jié)果是().(A)y=O(B)y=l(0y=隨機值(D)y=-1

ttinclude<stdio.h>

voidmain()

{inty=10;

while(y-);

printfCy^d*,y);}

4.若有以下說明:

char*strl="copy”,str2[10],*str3="str”,*str4,*str5="good";

則對的的事操作語句是()。

(A)strcpy(str4,strl);(B)strcat(strl,str3);(C)str2="newstr”;(D)strcpy(str5,str3);

5.下面程序運營后,x,y,z的值分別是()°(A)100(B;000(C)lll(D)001

#include<stdio.h>

voidmain()

{intx=0,y=0,z=0;

++x||++y||++z;

printf(*%d%d%d\n”,x,y,z);}

6.以下程序運營的結(jié)果是()。(A)456(B)654(C)056(D)065

#include<stdio.h>

unionmyun

(struct

{intx,y,z;}u;

intk;}a;

voidmain()

(a.u.x=4:a.u.y=5:a.u.z=6;

a.k=0

printf("%d%d%d\n”,a.u.x,a.u.y,a.u.z);}

7、關(guān)于C++與C語言的關(guān)系描述中,錯誤的是()。

(A)C語言與C++是兼容的(B)C++對C語言進行了一些改善

(0C語言是C++的一個子集(D)C++和C語言都是面向?qū)ο蟮?/p>

8、下列描述中,對的的是()。

(A)子類可以繼承其父類的所有屬性和操作,但子類不能定義自己特有的屬性和操作

(B)消息傳遞是類與類之同通信的手段

(0C++允許函數(shù)重載,但不允許運算符重載

(D)C++中可以定義虛函數(shù),通過它來支持動態(tài)聯(lián)編

9、下面程序運營的結(jié)果是()。(A)17(B)31(013(D)7

ftdefinef(x)l+x+x*x

#include<stdio.h>

voidmain()

{inta=2,b=3;

printfC,%d\n/,,f(a+b));)

10、下面局部程序代碼是C++中的()特性的表現(xiàn)。(A)繼承(B)重載(C)多態(tài)性(D)封裝

voiddisplay(intvar)

(cout?var;}

voiddisplay(charvar)

{cout<<var;}

voiddisplay(intvarl,charvar2)

(cout?varl<<var2:)

二、讀程序題(每個選擇3分,共45分)

1、有下列程序:

#include<stdio.h>

intf(intm)

{staticintx[3]={2,3,4);

inti;

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

x[i]+=x[i]~m;

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

printf("%d,",x[i]);

printf("\n〃);

return(x[m]);}

voidmain()

{inty=l;

f(r(y));)

⑴第一次調(diào)用f函數(shù)的結(jié)果是()。(A)5,7,9(B)l,5,9(C)0,1,3(D)3,5,7

⑵第二次調(diào)用f函數(shù)的結(jié)果是()。(A)3,5,7(B)l,5,9(C)0,1,3(D)5,7,9

2、讀下列程序,運營時輸入:Thisisabook!

#includez,stdio.h"

intchange(char*c,intfg)

{if(*c='')

LI:return1;

else

if(fg&&*c<=,z'&&*c〉='a)

*c+='A'-'a';

return0;)

voidmain()

{intflag=l;

charch;

do

{ch=getchar();

flag=change(&ch,flag);

putchar(ch);

}while(ch!=,\n);

}

⑴程序的運營結(jié)果是()。

(A)THISISABOOK(B)thisIsABook!(C)ThisIsABook!(D)ThisIsaBook!

⑵與LI:relurn1等效描述的為()。(A)return0(B)return-1(C)return1-1(D)return!(-1)

3、讀下列程序,回答問題。

#includez,iostream,h”

intsb(int*s,inty)

{staticinti=3;

y=s[i—];

returny;)

voidmain()

(ints[]={l,2,3,4);

inti,x=0;

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

{x=sb(s,x);

cout<<x?*,J;

)

cout?endl;}

⑴程序結(jié)束后i的值為()。(A)4(B)0(02(D)l

⑵該程序的輸出結(jié)果是()。(A)l,2,3,4(B)2,3,4,1(C)3,4,1,2(D)4,3,2,1

4、讀下列程序,回答問題。

#include,ziostream,h”

voidmain()

{char*s="213142";

inta=0,b=0,c=0,d=0;

intk;

for(k=O;s[k];k++)

switch(s[k])

{default:d++;

case'r:a++;

case'3':c++;

case'2':b++;

cout?va=°?a?w,b=w?b?w,c=M?c?w,d=w?d?endl;}

⑴該程序運營結(jié)束時,k的值是()。(A)8(B)7(06(D)5

⑵該程序的輸出結(jié)果是()o

(A)a=4,b=5,c=4,d=l(B)a=4,b=9,c=3,d=l(0a=3,b=6,c=4,d=i(D)a=8,b=8,c=8,d=8

5.下列程序運營的結(jié)果為().(A)1234(B)4321(C)1324(1))4231

#include,zstdio.h"

voidfun(char*s)

{chart;

if(*s)

{t=*s++;fun(s);

if(t!=\03

putchar(t);}}

voidmain()

{char*a="1234”;

fun(a);}

6.讀下列程序,回答問題。

#include"sldio.h〃

voidsubl(chara,charb)

{charc;

c=a;a=b;b=c;}

voidsub2(char*a,charb)

{charc;

c=*a;*a=b;b=c;}

voidsub3(char*a,char*b)

(charc:

c=*a;*a=*b;*b=c;}

voidmain()

{chara,b;

a='A';b='B';

sub3(&a,&b);putchar(a);putchar(b);

sub2(&a,b)jputchar(a)jputchar(b);

subl(a,b);putchar(a);putchar(b);)

⑴程序中調(diào)用完函數(shù)sub3后,輸出為()。(A)AB(B)ABBA(C)BA(D)BAAB

⑵該程序的最終輸出結(jié)果為()<(A)ABBBAB(B)ABBBBB(C)BABABA(D)BAAAAA

7、讀以下程序,并回答問題。

#include<stdio.h>

unionbt

{inta;

charb[2];

};

voidfun(unionbt*c)

{c->a=-7;

c->b[0]=9;

c->b[l]=8;}

voidmain()

{unionbtc;

fun(&c);

printfc.a):}

⑴程序的輸出結(jié)果為()。(A)8(13)9(0-7(D)以上都不對的

⑵若將程序中所有的union換成struct,程序的輸出結(jié)果為()。(A)8(B)9(C)-7(D)7

8、讀程序,回答問題。

#include<stdio.h>

#include<stdlib.h>

voidmain(intargc,char*argv[])

(FILE*fp;

voidfun(FILE*fp);

inti=l;

while(-argc>0)

if((fp=fopen(argv[i++],"r〃))==NULL)

{printf("Cannotopenfile!\n");

exit(0);}

else{fun(fp);fclose(fp);)

}

voidfun(FILE*fp)

{charc;

c=fgetc(fp);

while((c!=EOF))

{if(c>=,A*&&c<=,Z*)putchar(c);

elseif(c>=,a&&c<=,z)putchar(c-('a''A'));

c=fgetc(fp);

})

上述C程序編譯、連接后生成一個可執(zhí)行義獻,文獻名為ex2_8。假設(shè)磁盤上的兩個文本文獻filel.txt

和file2.txt,filel.txt的內(nèi)容為SiChuan,file2.txt的內(nèi)容為Test。

若在DOS提醒符下鍵入:ex2_8filel.txtfile2.txt〈回車),則程序的運營結(jié)果為()。

(A)SICHUAN(B)SICHUANTEST(C)SiChuanTest(D)TEST

9、下面程序的輸出是()。(A)13(B)l(03(D)0

ttincldue^stdio.h"

intfun(charvalue,intn)

{7alue?=n-l;

value&=0x01;

return(value);)

voidmain()

{charc=13;

printf(,z%d\n,z,fun(c,2));)

三、程序填空題(每空2分,共3。分)

1、下列程序是一個求數(shù)組元素之和的程序。主程序中定義并初始化了一個數(shù)組,然后計算該數(shù)組各元素

之和,并輸出結(jié)果。函數(shù)Sum計算數(shù)組元素之和。請完畢下列程序。

#include<iostream.h>

TotalSum(int[],int);

voidmain()

(inta[5]={2,3,6,8,10};

intTotal;

Total=____________

cout<</,Sumofarray:"<<endl:}

intTotalSum(intarray[],intlen)

{intsum=0;

for(inti=0;i<len;i++)

returnsum;}

2.輸入一個8位二進制數(shù),將其轉(zhuǎn)換為十進制數(shù)輸出。

#includc,/iostrcam.h"

doublepower(doublex,intn);

voidmain(void)

{inti;

intvlaue=0;

charch;

cout<?,,Enteran8bitbinarynumber*;

for(i=7;i>=0;i一)

{cin?ch;

if()

va1ue+=;

}

cout<<,,docimalvalueis/,<<value<<cndl;

)

doublepower(doublex,intn)

{doubleval=l.0;

while(n——)

return(val);)

3.以下程序是判斷輸入字符串是否是“回文”(順讀和倒讀都同樣的字符串叫回文,如level),請?zhí)羁铡?/p>

#include,zstdio.h"

#include?,string.h"

voidmain()

{chars[81],*pl,*p2;

intn;

gets(s);

n=strlen(s);

pl=s;

P2=;

while()

{if(*pl!=*p2)break;

else{pl++;;}

}

if(pl<p2)printf("No\n");

elseprintf(,,Yes\nz,);}

4.下面程序功能是檢查一個4階矩正是否對?稱(即對所有的i,j,都有num[i][j]=num[j][i]),請?zhí)羁铡?/p>

#include“stdio.h"

voidmain()

{intnum[4][4];

inti,j,flag=0:

printf(*lnputarraynum:\n");

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

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

scanf;

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

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

if()

{flag=l;break;}

if()printfCNo\n");

elseprintf("Yes\n");}

5.下面程序的功能是從鍵盤輸入一字符串,將該字符串與一文本文獻進行比較,打印出與之相同的行的

行號和內(nèi)容,voidcomp()用于文獻的比較,文獻名用命令行參數(shù)提供。請?zhí)羁铡?/p>

#include,zstdio.h"

#include〃sting.h"

#include"sldlib.h"

FILE*fp;

voidcomp(char*string)

{intline=0;

charstr[100];

{fgets(str,100,fp);

str[strlen(str)-l]=,\0?;

1ine++:

printf("%d:$s\rT,line,str);

)}

voidmain(intargc,char**argv)

{charstring[100];

if(argc!=2)

(printf(werror\n,z);exit(0);}

if((fp=)==NULL)

,,

{printf("Cannotopenfile%s!\n>argv[lj);

exit(0);}

printf(^Pleaseinputthestring:\n〃);

gets(string);

comp(string);

fclose(fp);}

模擬試題三21

第一部分軟件技術(shù)基礎(chǔ)

一、是非判斷題(每小題1分,共10分)

1.應(yīng)用程序在執(zhí)行過程中,需要通過打印機輸出數(shù)據(jù)時:一般先形成一個打印作業(yè),將其存放在硬盤中

的一個指定隊列中,當(dāng)打印機空閑時,就會按先來后服務(wù)的方式從中取出待打印的作業(yè)進行打印。()

2.若無進程處在運營狀態(tài),則就緒隊列和等待隊列均為空。()

3.多道程序設(shè)計是指在一臺解決機上并發(fā)運營多個程序。()

4.黑盒法是軟件測試方法中的靜態(tài)測試方法之一。()

5.軟件的具體設(shè)計就是要編寫出具體的程序。)

6.軟件生命周期中花費最多的階段是軟件維護。()

7.Windows是單用戶多任務(wù)操作系統(tǒng),UNIX是多用戶多任務(wù)操作系統(tǒng)。()

8.進程把程序作為它的運營實體,沒有程序也就沒有進程。()

1.9.在結(jié)構(gòu)化分析中,用于描述加工邏輯的重要工具有三種,即:結(jié)構(gòu)化語言,鑒定表和鑒定樹。

()

2.1().作業(yè)調(diào)度程序從后備隊列中選一個作業(yè)裝入主存后,決定能否占用解決機的是設(shè)備調(diào)度程序。

()

3.單項選擇題(1分/小題,共5分)

4.互換技術(shù)是在()之間互換程序和數(shù)據(jù)。

A.主內(nèi)存與CPU

溫馨提示

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

最新文檔

評論

0/150

提交評論