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

下載本文檔

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

文檔簡介

C語言二級考試復習題

“c語言程序設(shè)計”二級考試復習資料

二級考試大綱5模擬試題,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,7

—?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,13—*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,19/莫才以i式

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28模擬試題五,”””36模擬試題7X

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4'3補充:文件,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,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ù)指標與系統(tǒng)配置

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

3、微機硬件系統(tǒng)的基本組成。包括:中央處理器(運算器與控制器),內(nèi)存儲器(RAM

與ROM),外存儲器(硬盤、軟盤與光盤),輸入設(shè)備(鍵盤與鼠標),輸出設(shè)備(顯示

器與打印機)。

4、軟件系統(tǒng)的組成,系統(tǒ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、文件、目錄、路徑的基本概念。

4、常用DOS操作,包括:

初始化與啟動;

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

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

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

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

批處理(批處理文件的建立與執(zhí)行,自動批處理文件);

輸入輸出改向。

(三)Windows的基本操作

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

2、Windows用戶界面的基本元素。包括:窗口、圖標、菜單、對話框、按鈕、光標等。

3、Windows基本操作。包括:啟動與退出,鼠標操作,窗口操作,圖標操作,菜單操

作,對話框操作。

二、程序設(shè)計1

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

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

3、能熟練使用一種高級語言或一種數(shù)據(jù)庫語言(共有QBASIC、FORTRON、C以及

FoxBASE+、VB、VF等六種語言,考生任選其中一種。各種語言的考試內(nèi)容附后。)

三、上機操作

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

1、完成指定的計算機基本操作(包括機器啟動和操作命令的使用)。

2、按給定要求編寫和運行程序。

3、調(diào)試程序,包括對給出的不完善的程序進行修改利補充,使之能得到正確的結(jié)果。

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

(一)C語言的結(jié)構(gòu)

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

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

3、源程序的書寫格式。

4、C語言的風格。

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

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

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

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

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

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

(三)基本語句]

1、表達式語句,空語句,復合語句。

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

3、復合語句。

4、GOTO語句和語句標號的使用。

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

1、用1F語句實現(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),寄存器、外部),變量的作用域和生存期。28、內(nèi)

部函數(shù)與外部函數(shù)。

(八)編譯預處理

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)成鏈表,單向鏈表的建立、輸出、刪除與插入。

(H'?一)位運算

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

(十二)文件操作

只要求緩沖文件系統(tǒng)(即高級磁盤I/O系統(tǒng)),對非標準緩沖文件系統(tǒng)(即低級磁盤

I/O系統(tǒng))不要求。

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ù)組進行二分查找,必須要求數(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è)備管理中,打印機被看成是一種共享設(shè)備。()

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

二、單項選擇題。

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

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

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

(A)互斥條件(B)全部分配條件C)環(huán)路條件(D)不可剝奪條件

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

為它的一個主要組成部分。(A)軟盤(B)寄存器(C)硬盤(D)CD-ROM

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

所獨有的是()。

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

(C)數(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("%c",p[l]-'O');

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

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

#includewstdio.h"

voidmain()

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

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

printf("%d,%d,%dy,,k,a,b);}

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

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

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

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

(B)intx=0,y;(A)intx=0,y=10;

switch(x)switch(x)

{casex>0:y=l;break;{casey:x++;break;

casex=0:y=0;break;casey+2:x+=10;break;

casex<0:y=~l;break;}casey-1:x=-7;break;}(D)intx=0,y;(C)#definey20

switch(x)intx=10,z;

switch(x){case3:

{case12:z=3;break;case-1:y=2;break;

casey+1:z+=10;break;case2:break;casey-8:y-=3;break;}}5.定義如下數(shù)組

s:chars[81];

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

(A)gets(s+2);(B)scanf(“%20s",s);

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

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

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

intaaa(char*s)

{char*t=s;

while(*t++);

returnt-s;}

(A)求字符串長度(B)比較兩個串的大小(C)將串s復制到串t中(D)以上三種說法均

不對

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

intx=10;4inty=x++;

printf("%d,%d",(x++,y),y++);

8.若有說明inti,尸2,*p二&i;,則能完成i二j賦值功能的語句是()。

(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(4%f,%f\n,a.f,a.x);}

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

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

structperson

{charname[20];intage;};

下列操作正確的是()

(A)structpersonpersonl={“Tom”,20};

(B)structpersonpersonl;personl={“Tom”,20};

(C)structpersonpersonl;scanf("%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,"w");

for(i=0;i<strlen(st);i++)

fputc(st[i],myf);

fclose(myf);)

voidmain()

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

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

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

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

#include<stdio.h>

voidpointl(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]={'a','c','s','f},*pt=b;

intx=3,y=4;

pointl(x,y);5

1)printf("%d,%d\n”,x,y);

point2(&x,&y);

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

point3(pt);

3)printf(u%c\nv,*(pt+l));

)

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

2)(A)4,5(B)3,4(C)4,3(D)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);)

voidmainO

{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

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

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

4.#include”stdio.h"

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]="210",s2[30]="45";

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

printf("%d\n",p-sl);}

⑴該程序運行的結(jié)果為()。(A)5(B)6(C)7(D)8

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

5.讀程序,回答問題。

#include<stdio.h>

voidmain()

{char*s="12134211”;

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

intk;

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

switch(s[k])

{default:d++;

case'1':a++;

case'3':c++;

case'2':b++;

)

printf("a二%d,b=%d,c=%d,d二%d",a,b,c,d);}6。

⑴該程序運行結(jié)束時,k的值是()。(A)7(B)8(C)9(D)10

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

(A)a=4,b=2,c=l,d=l(B)a=4,b=9,c=3,d=l(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);}

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

(2)語句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,"pointer1,*pointer2;

pointerl=&a;pointer2=&b;

swap(pointeri,pointer2);

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

⑴讀程序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(C)5,4(D)5,6

8.讀程序,回答問題。

#include“stdio.h"

unionun

{inti;

charc[2];

);

voidmain()

{unionunx;

x.c[0]=10;

x.c[l]=l;

printf("\n%d",x.i);}

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

三.程序填空

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

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

#include<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])

;7

else

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

return;

}

voidmain()

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

intmax,min;

find();

printf(<<\n%d,%dw,max,min);)

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

字符串。新建一個文件,將用戶名和密碼以結(jié)構(gòu)體的形式存入,要求密碼存放時將每個字

符的ASCII碼加1。#include<stdio.h>

main()

{structperson

{charname[16];

charcode[6];

}per;

intk,j;

charfname[20];

scanf("%s”,fname);

if((fp=fopen(fname,wwbw))==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.下面程序的功能是三個字符串中找出最小的。

#includewstdio.h”

#includevstring,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(“%s\n”,);}

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

中。文件每行字符的個數(shù)小于BUFFSIZE。請?zhí)羁铡?/p>

#include<stdio.h>

#defineBUFFSIZE128

voidmain(intargc,char**argv)

{FILE*fp,*fg;

chars[BUFFSIZE];8

if(argc<2)

{puts("Haven'tcatfilenamew;

return;}

if(fp=fopen(*++argv,va+”))—NULL)

{printf(<<can\,topenfile%s”,*argv);

return;}

argc=argc_2;

while(argc-)

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

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

return;}

while()

fputs(,fp);

fclose(fp);}

fclose(fg);)

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

填空。ftinclude“stdlib.h"

#include“stdio.h

structstudent

{intinfo;

structstudent*link;

);

voidprint(structstudent*head)

{structstudent*p;

pirntf(a\nthelinklistis:");

p=head;

if(head!=NULL)

do{printf(;

P=;

)

while(_____________);

)

main()

{structstudent*head;

,,,,

print(head)

模擬試題二19

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

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

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

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

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分)9

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

放入已排序序列的正確位置稱為()oA.選擇排序B.快速排序C.插入排序D.冒泡排序

2.有X、Y、Z三個元素依次入棧,不可能的出棧順序是()-A.Z,Y,XB.Z,X,Y

C.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、對下列程序段的描述正確的是()。

#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時需要使用到預處理命令#include〈iostrcani.h>

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

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

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

3、下述程序的輸出結(jié)果是()。(A)y=O(B)y=l(C)產(chǎn)隨機值(D)y=-1

#include<stdio.h>

voidmain()

{inty=10;

while(y-);

printf(〃y=%d〃,y);}

4、若有以下說明:

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

則正確的串操作語句是()o

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

(D)strcpy(str5,str3);

5、下面程序運行后,x,y,z的值分別是()。(A)l00(B)000(0111(D)00

1#include<stdio.h>

voidmain()

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

++xII++yII++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語言進行了一些改進

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

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

10

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

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

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

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

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

#definef(x)l+x+x*x

#include<stdio.h>

voidmain()

{inta=2,b=3;

printf(〃%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]);

printfCW);

return(x[m]);}

voidmain()

{inty=l;

f(f(y));}

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

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

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

ftinclude^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);

)

11,5,9(C)0,5,9(C)0,1,3(D)3,1,3(D)5,5,7,7,9(1)程序的運行結(jié)

果是()。

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

(2)與LLreturn1等效描述的為()。(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?,,*;

)

cout?endl;}

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

(2)該程序的輸出結(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=0;s[k];k++)

switch(s[k])

{default:d++;

case'1':a++;

case'3':c++;

case'2':b++;

}

cout<a="<<a久",b="<<b?"<<c?",d="<<d?endl;}

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

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

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

5、下列程序運行的結(jié)果為()°(A)1234(B)4321(C)1324(D)4231

#include,zstdio.h〃

voidfun(char*s)

{chart;

if(*s)

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

if(t!='\O')

putchar(t);}}

voidmain()

{char*a=“1234”;

fun(a);}

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

#includez,stdio.h〃

voidsubl(chara,charb)

{charc;

c二a;a二b;b=c;}12

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);putchar(a);putchar(b);

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

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

(2)該程序的最終輸出結(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);

printf("%d\n〃,c.a);}

(1)程序的輸出結(jié)果為()。(A)8(B)9(0-7(D)以上都不正確

(2)若將程序中所有的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(O);}

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

)

voidfun(FILE*fp)

{charc;

c=fgetc(fp);

while((c!=E0F))

{if(c>='A'&&c〈二'Z')putchar(c);

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

c=fgetc(fp);

})13

上述C程序編譯、連接后生成一個可執(zhí)行文件,文件名為ex28。假設(shè)磁盤上有兩個文

本文件filel.txt和file2.txt,filel.txt的內(nèi)容為SiChuan,file2.txt的內(nèi)容為

Testo

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

()。

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

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

#inclduez,stdio.h〃

intfun(charvalue,intn)

{value>>=n-l;

value&=0x01;

return(value);)

voidmain()

{charc=13;

printf(級d\n〃,fun(c,2));}

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

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

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

#include<iostream.h>

TotalSum(int[Lint);

voidmain()

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

intTotal;

Total=____________

cout?A,Sumofarray:〃?endl;}

intTotalSum(intarray[],intlen)

{intsum=0;

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

returnsum;

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

#include,ziostream.h〃

doublepower(doublex,intn);

voidmain(void)

{inti;

intvlaue=0;

charch;

cout<,""Enteran8bitbinarynumber”;

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

{cin?ch;

if()

value+=;

)

cout?/zdecimalvalueiszz<<value?endl;

}

doublepower(doublex,intn)

{doubleval=l.0;

while(n-)

return(val);)

3、以下程序是判斷輸入字符串是否是“回文”(順讀和倒讀都一樣的字符串叫回文,如

level),請?zhí)羁铡?include〃stdio.h"

#includez,string.h〃

voidmain()14

{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\n〃);}

4、下面程序功能是檢查一個4階矩正是否對稱(即對所有的i,j,都有

num[i][j]=num[j][i]),請?zhí)羁铡?include"stdio.h"

voidmain()

{intnum[4][4];

inti,j,flag=0;

printf("Inputarraynum:\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(___________)printf(〃No\n〃);

elseprintf(〃Yes\n〃);}

5、下面程序的功能是從鍵盤輸入一字符串,將該字符串與一文本文件進行比較,打印

出與之相同的行的行號和內(nèi)容,voidcomp()用于文件的比較,文件名用命令行參數(shù)提

供。請?zhí)羁铡?/p>

#includez,stdio.h〃

ftinclude^sting.h〃

ttinclude^stdlib.h〃

FILE*fp;

voidcomp(char*string)

{intline=0;

charstr[100];

{fgets(str,100,fp);

str[strlen(str)-1]=,\0';

line++;

printf(〃%d:%s\n〃,line,str);

})

voidmain(intargc,char**argv)

{charstring[100];

if(argc!=2)

{printf(/zerror\n,z);exit(0);)

if((fp-)-=NULL)

{printf(z/Cannotopenfile%s!\n/z,argv[l]);

exit(0);}

printf(,zPleaseinputthestring:\n/z);

gets(string);15

comp(string);

fclose(fp);}

模擬試題三21

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

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

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

將其存放在硬盤中的一個指定隊列中,當打印機空閑時,就會按先來后服務(wù)的方式從中取

出待打印的作業(yè)進行打印。()

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

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

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

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

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

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

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

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

和判定樹。()

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

調(diào)度程序。()

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

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

A.主內(nèi)存與CPUB.CPU與外設(shè)C.主內(nèi)存與外存D.外存與CPU

2.以下的工具中哪個不是軟件詳細設(shè)計中使用的工具()。

A.數(shù)據(jù)流圖B.N-S圖C.PDA圖D.PDL語言

3.任何兩個并發(fā)進程之間()。

A.一定存在互斥關(guān)系B.■?定存在同步關(guān)系C.一定彼此獨立無關(guān)D.可能存在同步或互

斥關(guān)系

4.進程從運行狀態(tài)進入就緒狀態(tài)的原因可能是()。

A.被選中占有處理機B.等待某一事件C.等待的事件己發(fā)生D.時間片用完

5.算法指的是()。

A.計算機程序B.解決問題的有限運算序列C.排序算法D.解決問題的計算方法

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

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

1.以下程序運行后,輸出結(jié)果是()A.0,0B.0,1C.1,0D.1,1

voidmain()

{inta=l,b=2,m=0,n=0,k;

k=(n=b>a)(m=a<b);

printf("%d,%d\n”,k,m);}

2.以下程序輸出的結(jié)果是()A.7B.6C.5D.4

voidmain()

{intm=5;

if(m++>5)

printf("%d”,m++);

else

printf("%d”,m-);}

3.下列程序運行的結(jié)果是()。A.11B.OC.10D.12

voidmain()

{inta=10,b=ll,c=12,d;

printf(u%d\nv,a>c?a:c?d=a>b:b);}

4.一知:inta,b;下列switch語句中,()是正確的。

A.switch(a)B.switch(a+b)

{casea:a++;break;{case1:a++;

caseb:b++;break;}case2:b++;}

C.switch(a*b)D.switch(a/10+b)

{case1,2:a+b;{casea+b:++a;break;16

case3,4:a-b;}casea-b:一b;}

5.下列程序由兩個文件fl.c和f2.c組成。

fl.文件的內(nèi)容:f2.c文件的內(nèi)容:#include<stdio.h>sum(intn)

#include"f2.c”{intt;^defineN3staticints=0;voidmain()

for(t=l;t<=n;t++){inti;s+=t*t;for(i=l;i〈=N;i++)return(s);}

a9,

printf(%df,sum(i));)程序的輸出結(jié)果是()。A.1,5,14,B.1,2,3,C.

1,6,20,D.1,4,9

6、C++中,有以下定義:inta,b;若要從鍵盤輸入變量a,b的值,則正確的輸入語句是

()。

A.cin>>a>>b;B.cin?a<<b;C.cout>>a>>b;D.cout?a<<b;

7.下列程序運行的結(jié)果是()°A.1,8B.8,1C.10,1D.1,10#include<stdio.h>

#defineswap(x,y){x=y;y"=x;x"=y;}

voidmain()

{inta=010,b=l;

swap(a,b);

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

8.以下scanf函數(shù)調(diào)用中對結(jié)構(gòu)變量成員的錯誤引用是()。

structstudent

{charname[20];

intage;

intsex;

}stud[5L*P;

p=stud;

A.scanf(,stud[0].name);B.scanf(,&stud[0].age);

C.scanf(,p->age);D.scanf("%d”,&(p->sex));

9.在以下關(guān)于C++構(gòu)造函數(shù)的描述中,錯誤的是()。

A.構(gòu)造函數(shù)可以重載B.構(gòu)造函數(shù)可以帶缺省參值

C.構(gòu)造函數(shù)名必須與類同名D.構(gòu)造函數(shù)可以帶回返回值

10.下面對C++函數(shù)重載的描述中,錯誤的是()。

A.函數(shù)名相同B.函數(shù)參數(shù)個數(shù)或參數(shù)類型至少有一個不同

C.函數(shù)參數(shù)不可以用缺省值D.函數(shù)返回值必須不同

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

1.下列程序運行的結(jié)果為()。A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b

#include<stdio.h>

voidfun(char*c,intd)

{*c=*c+1;

d=d+l;

prinf(%c,",*c,d);

)

voidmain()

{chara='A',b='a';

fun(&b,a);

printf("%c,%c\nw,a,b);}

2.下面程序的輸出是()oA.36B.63C.00D.編譯出錯#include<stdio.h>

voidtest(int*u,int*v)

{int*w;w=u;u=v;v=w;17

}

voidmain()

{intm=3,n=6,*x=&m,*y=&n;

test(x,y);

printf(u%d%dw,m,n);}

3.以下程序的輸出結(jié)果是()°A.8,22B.7,20C.6,22D.5,20#include<stdio.h>

voidmain()

{intx,y;

for(x=l,y=l;x〈=15;x++)

{if(y>20)

break;

if(y%3==1)

{y+=3;

continue;

}

y-=10;

}

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

4.voidfun(char*tl,char*t2)

{inti,j;

while(*t2!=0)

(

for(i=0,j=O;tl[i];i++)

if(tl[i]!=*t2)

tl[j++]=tl[i];

tl[j]=;

t2++;

})

voidmain()

{chara[]="abcde",b[]="ae";

fun(a,b);

puts(a);}

該程序的輸出結(jié)果為()。A.abcdeB.bedC.abedeaeD.ae

5.以下程序的輸出結(jié)果是()°A.11B.12C.14D.15

#include<stdio.h>

ftdefineFUN(y)2.84+y

#definePR(a)printf("%d",(int)(a))

#definePRINT(a)PR(a);putchar('\n')

voidmain()

{intx=2;

PRINT(FUN(5)*x);}

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

#includ

溫馨提示

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

最新文檔

評論

0/150

提交評論