




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022-2023年福建省三明市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
2.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運行時輸入以下命令行tt12345678程序運行后的輸出結(jié)果是A.12B.12345C.12345678D.136
3.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
4.設(shè)有一個棧,元素依次進棧的順序為A、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
5.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是()。
A.隨機值B.0C.5D.6
6.以下程序運行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
7.以下敘述中正確的是()。
A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
B.每個后綴為C的C語言源程序都可以單獨進行編譯
C.在C語言程序中,只有main函數(shù)才可單獨進行編譯
D.每個后綴為.C的C語言源程序都應(yīng)該包含一個main函數(shù)
8.在面向?qū)ο蠓椒ㄖ校粋€對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
9.
10.利用E-R模型進行數(shù)據(jù)庫的概念設(shè)計,可以分成3步:首先設(shè)計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。
A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
11.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護過程
12.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。
A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
13.下列關(guān)于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點有且僅有一個前件和后件
D.線性表是由n個元素組成的一個有限序列
14.
15.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00
16.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
17.
18.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序運行后輸出的結(jié)果是()。A.246810B.13579C.12345D.678910
19.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
20.面向?qū)ο蠓椒ㄖ?,繼承是指()。
A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制
二、2.填空題(20題)21.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
22.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
23.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
24.以下程序的定義語句中,x[1]的初值是【】,程序運行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
25.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
26.下列程序的運行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.函數(shù)fun的功能是計算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已經(jīng)正確定義變量m,a,b并賦值,要調(diào)用函數(shù)fun計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。
28.在進行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
29.下面程序的運行結(jié)果是()。
#include<stdio.h>
main()
{inta=25;
fun(&A);
}
fun(int*x)
{printf("%d\n",++*x);
}
30.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
31.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
32.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
33.對軟件是否能達到用戶所期望的要求的測試稱為【】。
34.在E-R圖中,矩形表示【】。
35.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
37.防止軟盤感染病毒的最有效的方法是【】。
38.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
39.以下程序運行后的輸出結(jié)果是______。
main()
{
intx=15;
while(x>10&&x<50)
{
x++;
if(x/3){x++;break;}
elsecontinue;
}
printf("%d\n",x);
}
40.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
三、1.選擇題(20題)41.有以下程序段main(){chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);}程序段運行后的輸出結(jié)果是()
A.aB.\0C.eD.f
42.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
43.以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()
A.棧B.線性表C.隊列D.二叉樹
44.若有“doublea;”,則正確的輸入語句是()。
A.scanf("%1f",A);
B.scanf("%f",&A);
C.scanf("%1f",&A);
D.scanf("%1e",A);
45.設(shè)有如下程序#inclide<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);}上述程序的輸出結(jié)果是______。
A.運行錯誤B.100C.i的地址D.j的地址
46.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運行結(jié)果是()。
A.1212B.117C.1111D.127
47.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz",strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
48.以下不能正確計算代數(shù)式sin2()值的C語言表達式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
49.下列程序的輸出結(jié)果是______。main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}
A.0B.0.25C.0.5D.1
50.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
51.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
52.經(jīng)下列語句定義后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC機上的值分別為______。charx=65;floaty=7.3;inta=100;doubleb=4.5;
A.2,2,2,4B.1,2,2,4C.1,4,2,8D.2,4,2,8
53.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
54.有三個關(guān)系R、S和T如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡兒積D.交
55.軟件生命周期一般包括:軟件計劃期、開發(fā)期和軟件運行期。因此,在下述項目中,______不是軟件開發(fā)期的內(nèi)容。
A.需求分析B.結(jié)構(gòu)設(shè)計C.程序編制D.性能優(yōu)化
56.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結(jié)果是
A.3B.4C.5D.6
57.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
58.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
59.下列關(guān)于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志
B.′\0′作為標(biāo)志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入′\0′
D.在C語言中,字符串常量隱含處理成以′\0′結(jié)尾
60.源程序的文檔化不包括()。
A.符號名的命名要有實際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋
四、選擇題(20題)61.
設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n—c>d)運算后,n的值是()n
A.0B.1C.2D.3
62.
63.
64.
65.(46)面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考
66.
67.
運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。
main
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a<b)
{t=a;a=b.b=t;)
if(a<c)
{t=a;a=c;c=t;)
it(b<c)
{t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.000002.000001.00000
68.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
69.
70.(50)數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,以下各項中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
71.有以下程序
72.
73.
74.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
75.耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
76.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標(biāo)識符,用以命名任意一個函數(shù)作為主函數(shù)
77.以下敘述中正確的是()。
A)C程序中的#include和#define行均是C語句,只是語法不同
B)除賦值運算符外,逗號運算符的優(yōu)先級最低
C)C程序中,j++;是賦值語句
D)C程序中,+、-、*、/、%號是算數(shù)運算符,可用于整型和實型數(shù)的運算
78.有以下程序:
程序的運行結(jié)果是()。
A.0B.9C.6D.8
79.sizeof(float)是
A.一個雙精度表達式B.一個整型表達式
C.一種函數(shù)調(diào)用D.一個不合法的表達式
80.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入3時,函數(shù)值為60;當(dāng)給n輸入6時,函數(shù)值為480。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.D
2.D解析:運行時輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個參數(shù)的第一個字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個新的三位數(shù)。
3.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設(shè)計階段完成的任務(wù);選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務(wù):選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務(wù)。
4.C
5.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中的spl等價于*(s+2),即x[5]值為0。所以,B選項為所選。
6.C解析:靜態(tài)局部變量在編譯時賦初值,即只賦韌值一次,在程序運行時它已有初值。以后每次調(diào)用時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值,而對自動變量賦初值,不是在編譯時進行的,而在函數(shù)調(diào)用時進行,每調(diào)用一次函數(shù)重新給一次初值,相當(dāng)于執(zhí)行一次賦值語句。本題在程序開頭定義了全局變量d并賦初值1,在被調(diào)函數(shù)fun()中,定義了靜態(tài)局部變量d,初值為5。在第一次調(diào)用函數(shù)fun時,d初值為5,p由主函數(shù)傳遞過來的值為1,則d=d+p=5+1=6,由于d是靜態(tài)局部變量,在函數(shù)調(diào)用結(jié)束后,它仍保留d=6。再次調(diào)用fun函數(shù),d的初值為6,而由主函數(shù)傳遞的p的值為9,則此時d=d+p=6+9=15,最后打印輸出d的值并返回主函數(shù)。
7.BC語言是一種成功的系統(tǒng)描述語言,具有良好的移植性,每個后綴為.C的C語言源程序都可以單獨進行編譯。
8.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,對象間的這種相互合作需要一個機制協(xié)助進行,這樣的機制稱為消息。消息是一個實例與另一個實例之間傳遞的信息,它請求對象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。
9.D
10.D解析:在概念設(shè)計中按照模塊的劃分畫出每個模塊的E-R圖,然后把這些圖合成一張E-R圖作為全局模型,最后應(yīng)該對全局E-R圖進行優(yōu)化,看看是否有重復(fù)和不合理的地方。不能只是進行簡單的合并。
11.A通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
12.C
13.CC)【解析】線性表是一種線性結(jié)構(gòu),由n(n≥O)個元素組成,所以線性表可以是空表。但是性表中,第一個結(jié)點沒有前件,最后一個結(jié)點沒有后件,其他結(jié)點有且只有一個前件和后件,所以選項C)是錯誤的。
14.D
15.A結(jié)構(gòu)體和共用體;在“聯(lián)合”中,各成員共享一段內(nèi)存空間,一個聯(lián)合變量的長度等于各成員中最長的長度。應(yīng)該說明的是,這里所謂的共享不是指把多個成員同時裝入一個聯(lián)合變量內(nèi),而是指該聯(lián)合變量可被賦予任一成員值,但每次只能賦一種值,賦入新值則沖去舊值
16.B
17.B
18.D本題中exch函數(shù)是用數(shù)組中的第6個元素對第1個元素進行賦值,所以數(shù)組的值應(yīng)該為678910。
19.D程序定義數(shù)組a,使用6個元素對其初始化,接著以寫二進制方式打開文件d.dat。調(diào)用fwrite函數(shù)將a的6個元素逆序(654321)寫入文件,接著調(diào)用rewind函數(shù),將文件指針移動到文件開始位置。調(diào)用fread函數(shù)讀入3個整數(shù),逐個存放到a開始下標(biāo)為3的3個位置,即a[3]=6,a[4]=5,a[5]=4,關(guān)閉文件。再次調(diào)用for循環(huán)輸出a,結(jié)果為:1,2,3,6,5,4,。本題答案為D選項。
20.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機制。
21.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時循環(huán)6次。
22.77解析:本題考查的是函數(shù)的遞歸調(diào)用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結(jié)果。
23.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個字符b,然后將首字符保存在字符變量t中;從字符串的第2個字符開始,通過語句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過語句*(P-1)=t;將保存在t中的字符放到移動后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。
24.224682,2468解析:在主函數(shù)中根據(jù)整型數(shù)組x[]的定義可知,x[1]的初值等于2。在for循環(huán)語句中,當(dāng)i=0時,p[0]=&x[1],p[0][0]=2;當(dāng)i=1時,p[1]=&x[3],p[1][0]=4;當(dāng)i=2時,p[2]=&x[5],p[2][0]=6;當(dāng)i=3時,p[3]=&x[7],\ue008p[3][0]\ue009=8,所以程序輸出的結(jié)果為2、4、6、8。
25.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
26.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。
27.fun(a4)+fun(b4)-fun((a+b)3);fun(a,4)+fun(b,4)-fun((a+b),3);解析:函數(shù)fun的功能是計算x的n次方,a的4次方的調(diào)用函數(shù)為fun(a,4),b的4次方的調(diào)用函數(shù)為fun(b,4),(a+b)的3次方的調(diào)用函數(shù)為fun((a+b),3),計算m=a4+b4-(a+b)3的函數(shù)調(diào)用語句為:fun(a,4)+fun(b,4)-fun((a+b),3);
28.驅(qū)動模塊驅(qū)動模塊解析:由于模塊通常不是獨立的程序,自己不能運行,而需要其他模塊調(diào)用或驅(qū)動,同時被測試模塊還要去調(diào)用其他模塊,前者稱為驅(qū)動模塊,后者稱為承接模塊。其中驅(qū)動模塊的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果;承接模塊的作用是代替被測模塊,調(diào)用其他模塊。
29.2626解析:在主函數(shù)中只調(diào)用了fun函數(shù),調(diào)用時把變量a的地址傳遞給形參。fun函數(shù)的形參x是一個指針,其基類型與主函數(shù)中a的類型一致,因此在調(diào)用時得到的是a的地址,輸出項是++*x,*x代表的就是主函數(shù)中變量a的存儲單元,++*x就是使主函數(shù)中a的值加1,輸出26。
30.**pa+I**p*p
31.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
32.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術(shù)運算的時候是用其相應(yīng)的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
33.有效性測試有效性測試
34.實體實體解析:E-R模型中,有3個基本的抽象概念:實體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實體,菱形框表示聯(lián)系,橢圓形框表示屬性。
35.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*旨針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。
36.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用。可知,循環(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。
37.進行寫保護進行寫保護
38.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
39.1717解析:break語句只能在循環(huán)體和switch語句體內(nèi)使用,當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用只是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體內(nèi)時,則在執(zhí)行break后,跳出本層循環(huán)體。而continue語句的作用時結(jié)束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本題中首先定義了一個變量x并賦初值15,然后判斷循環(huán)條件“x>5&&x<50”,即“x>5&&x<50”,為真,執(zhí)行循環(huán)體.語句“x++;”執(zhí)行后,x的值變?yōu)?6,“X/3”的值為5為真,執(zhí)行其后的語句“x++;”,x的值變?yōu)?7,執(zhí)行語句“break”,退出循環(huán),輸出。x的值為17。
40.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
41.D
42.D解析:本題考查了求數(shù)據(jù)類型長度的運算符sizeof和求字符串長度的函數(shù)strlen的區(qū)別。strlen計算的是一個字符串的實際字符個數(shù),如果字符串放在字符數(shù)組中,則函數(shù)strlen的值為'\\0'之前的全部字符個數(shù)。而sizeof求出的是數(shù)據(jù)占據(jù)存儲空間的字節(jié)數(shù),當(dāng)然也要包括字符串的結(jié)束標(biāo)志符'\\0'。
43.DD)【解析】二叉樹屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作;隊列可看作是插入在一端進行,刪除在另一端進行的線性表。
44.C
45.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結(jié)果應(yīng)當(dāng)為100。
46.B解析:題目中第1條要替換的語句i1=f(2);展開后是i1=(2*M);再展開為i1=(2*N+1);最后展開為i1=(2*5/1),結(jié)果使i1=11。而第2條語句i2=f(1+1);展開后為i2=(1+1*M);再展開為i2=(1+1*N+1);最后展開為i2=(1+1*5+1),結(jié)果使i2=7。故應(yīng)該選擇B。
47.D解析:strcat(p1,p2)將字符串a(chǎn)bcABC放到了*p1所指向的存儲單元中;strcpy在本題將abcABC復(fù)制到str+2所指向的存儲單元中,即覆蓋原str數(shù)組中的字符z及其后的所有字符,故str的值為“xyabcABC”。
48.A解析:A中sin(1/2)是0,因為1和2都是整數(shù),“/”在這里是整除。
49.C
50.A解析:通過地址來引用二維數(shù)組,若有以下定義:inta[3][4],i,j;且當(dāng)0≤i≤3,0≤j<4則可以有以下幾種方式來引用數(shù)組中的第i行,第j列的元素:\ue008a[i][j]\ue009,\ue008*(a[i]+j),\ue009*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。表達式&a[0][0]+2*i+j-2相當(dāng)于是地址&a[0][0]加上多少偏移量。
51.D解析:由于20000+20000、4000*10及30000+10000都是整型表達式,故運算的結(jié)果仍然是整型,表達式運算的結(jié)果超出了整型數(shù)據(jù)的范圍,不正確.而D是長整型運算,不會超出長整型的范圍。所以,4個選項中D為所選.
52.C
53.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。
54.D自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,因此B錯誤。笛卡兒積是用R集合中的元素為第一元素,s集合中的元素為第二元素構(gòu)成的有序?qū)?,因此C錯誤。根據(jù)關(guān)系T可以很明顯地看出是從關(guān)系R與是系s中取得相同的關(guān)系組,所以使用的是交運算,選擇D。
55.D解析:瀑布模型把軟件生命周期劃分為3個時期,時期又劃分為若干階段:①軟件定義期——問題定義和可行性研究;②軟件開發(fā)期——需求分析、總體設(shè)計、詳細設(shè)計、編碼和測試;③運行及維護階段——維護。所以,性能優(yōu)化不是軟件開發(fā)期所應(yīng)包含的內(nèi)容。
56.B解析:本題中定義了一個結(jié)點structNODE,在主函數(shù)中定義了三個結(jié)點變量指針p、q和r,接著通過malloc函數(shù)分配了三個結(jié)點并讓p、q和r分別指向他們,再接著給p、q和r所指向的結(jié)點的num域賦值為1、2、3,然后讓結(jié)點p指向q,讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結(jié)點的num域的值為3,p->hum的值為指針P所指向結(jié)點的num域的值為1,故最后輸出s的值為3+1=4。
57.AA。【解析】C語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個或者多個函數(shù)組成的。
58.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。
59.B解析:'\\0'作為標(biāo)志占用存儲空間,但是不計入串的實際長度。當(dāng)給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。
60.B解析:源程序的文檔化主要包括3點:(1)符號名應(yīng)具有一定實際的含義,便于理解程序功能:(2)正確的程序注釋;(3)良好的視覺組織。利用空格、空行、縮進等技巧使程序?qū)哟吻逦?/p>
61.C
\n因為a>b不成立,故表達式a>b的值為0,即為0賦給m,因此&&左邊表達式的值為0,0與任何值&&運算都為0,于是不再計算&&右邊表達式的值,所以此時的n仍然為2。
\n
62.B
63.A
64.C
65.C
66.B
67.D
\n本題考查if語句。第1個if語句,如果a<b,則a與b交換;第2個if語句,如果a<c,則a與c交換;第3個if語句,如果b<2t,則b與c交換。3個if語句結(jié)合起來實現(xiàn)的功能就是將a、b、C按從大到小排序。
\n
68.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結(jié)束,將最大的數(shù)放到了最后。在第二趟:仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再小于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第二個數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結(jié)束,在倒數(shù)第二的位置上得到一個新的最大數(shù)(其實在整個數(shù)列中是第二大的數(shù))。如此下去,重復(fù)以上過程,直至最終完成排序。
69.C
70.D
71.A函數(shù)fun的功能是返回字符串?dāng)?shù)組.,各個字符串第一個字母是T的個數(shù),str數(shù)組里有2個,所以選擇A)。
72.D
73.B
74.Dfloat是4個字節(jié),int是兩個字節(jié)。當(dāng)用int取float的值時,只取前兩個字節(jié)
75.B模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性,所以A錯誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度,所以C與D錯誤。故答案為B選項。
76.C\n一個c語言源程序至少包含一個main函數(shù)。無論main函數(shù)在程序中的位置如何,它都是C語言程序的主函數(shù),是程序執(zhí)行的入口和出口。
\n
77.C#define行為非C語句,所以沒有“;”號,%的運算對象只能為整型,逗號運算符的優(yōu)先級最低。
78.C函數(shù)intf(intx)是一個遞歸函數(shù)調(diào)用,
79.B本題主要考查sizeof的作用。在C語言中,sizeof用來求一個變量或者一種類型所占用的字節(jié)數(shù)。比如在TC編譯系統(tǒng)中,sizeof(int)一般是2,sizeof(float)一般是4,如果定義了一個整型數(shù)a,sizeof(a)就是sizeof(int),也就是2。從上面的例子中我們可以看出,sizeof返回的結(jié)果是一種整型數(shù)值,那么sizeof(float)應(yīng)該說是一個整型表達式。
80.A本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
81.(1)錯誤:fun(intn);
正確:fun(intn)
(2)錯誤:if(n=1)
正確:if(n==1)
【解析】根據(jù)C語言的語法規(guī)則,函數(shù)定義之后是不加分號的。由整個程序看,函數(shù)fun()是函數(shù)定義。因此“fun(intn);”應(yīng)改為“fun(intn)”;表達式n-1表示的是將1賦給變量n,顯’然是不對的。這里應(yīng)該判斷變量n是否等于l,因此“if(n=1)”應(yīng)改為“if(n==1)”。
82.\n\tvoidproc(char*str)\n\n\n\t{\n\n\n\tchar*p=str:\n\n\n\twhile(*p==*)p++;//通過P的移動來達\n\n\n\t到使P指向第一個不是*號的字符\n\n\n\tfor(;*p!=\0
;p++,str++)//把從第一個\n\n\n\t不是*號的字符放到a中‘\n\n\n\t*str=*P:\n\n\n\t*str=\0
;//最后用\0作為字符串結(jié)束標(biāo)志\n\n\n\t}\n\n\n\t【解析】題目中要求將字符串中的前導(dǎo)*號全部刪除首先將指針p移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。\n2022-2023年福建省三明市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
2.有以下程序main(intargc,char*argv[]){intn=0,i;for(i=1;i<argc;i++)n=n*10+*argv[i]'0';printf("%d\n",n);}編譯連接后生成可執(zhí)行文件tt.exe。若運行時輸入以下命令行tt12345678程序運行后的輸出結(jié)果是A.12B.12345C.12345678D.136
3.需求分析階段的任務(wù)是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
4.設(shè)有一個棧,元素依次進棧的順序為A、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
5.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}執(zhí)行后輸出結(jié)果是()。
A.隨機值B.0C.5D.6
6.以下程序運行后的輸出結(jié)果是______。intd=1;fun(intp){staticintd=d;d+=p;printf("%d",d);returnd;}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
7.以下敘述中正確的是()。
A.在C語言程序中,main函數(shù)必須放在其他函數(shù)的最前面
B.每個后綴為C的C語言源程序都可以單獨進行編譯
C.在C語言程序中,只有main函數(shù)才可單獨進行編譯
D.每個后綴為.C的C語言源程序都應(yīng)該包含一個main函數(shù)
8.在面向?qū)ο蠓椒ㄖ?,一個對象請求另一對象為其服務(wù)的方式是通過發(fā)送()。A.調(diào)用語句B.命令C.口令D.消息
9.
10.利用E-R模型進行數(shù)據(jù)庫的概念設(shè)計,可以分成3步:首先設(shè)計局部E-R模型,然后把各個局部E-R模型綜合成一個全局的模型,最后對全局E-R模型進行(),得到最終的E-R模型。
A.簡化B.結(jié)構(gòu)化C.最小化D.優(yōu)化
11.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護過程
12.數(shù)據(jù)結(jié)構(gòu)中,在邏輯上可以把數(shù)據(jù)結(jié)構(gòu)分成()。
A.動態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
13.下列關(guān)于線性表的敘述中,不正確的是()
A.線性表可以是空表
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點有且僅有一個前件和后件
D.線性表是由n個元素組成的一個有限序列
14.
15.有以下程序main(){union{charch[2];intd;}s;s.d=0x4321;printf("%x,%x\n",s.ch[0],s.ch[1]);}在16位編譯系統(tǒng)上,程序執(zhí)行后的輸出結(jié)果是______。A.21,43B.43,21C.43,00D.21,00
16.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
17.
18.有以下程序:#include<stdio.h>voidexch(intt[]){t[0]=t[s];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;while(i<=4){exch(&x[i]);i++;}for(i=0;i<5;i++)printf("%dl"x[i]);printf("\n");}程序運行后輸出的結(jié)果是()。A.246810B.13579C.12345D.678910
19.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.6,5,4,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,4,5,6,
D.1,2,3,6,5,4,
20.面向?qū)ο蠓椒ㄖ?,繼承是指()。
A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制
二、2.填空題(20題)21.下列的for語句的循環(huán)次數(shù)為______。
for(x=1,y=0;(y!=19)&&(x<7);x++);
22.下述程序的輸出結(jié)果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
23.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
24.以下程序的定義語句中,x[1]的初值是【】,程序運行后輸出的內(nèi)容是【】。
#include<stdio.h>
main()
{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},*p[4],i;
for(i=0;i<4;i++)
{p[i]=&x[2*i+1];
printf("%d",p[i][0]);
}
printf("\n");)
}
25.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
26.下列程序的運行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.函數(shù)fun的功能是計算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已經(jīng)正確定義變量m,a,b并賦值,要調(diào)用函數(shù)fun計算:m=a4+b4-(a+b)3。實現(xiàn)這一計算的函數(shù)調(diào)用語句為【】。
28.在進行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊,其中______的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
29.下面程序的運行結(jié)果是()。
#include<stdio.h>
main()
{inta=25;
fun(&A);
}
fun(int*x)
{printf("%d\n",++*x);
}
30.輸出指針數(shù)組各元素所指的整數(shù)值和它存放的地址值。
#include<stdio.h>
main()
{inti;
inta[5]={1,3,5,7,9};
int*num[5];
int【】;
for(i=0;i<5;i++)
num[i]=【】;
p=num+0;
for(i=0;i<5;i++)
{printf("%d%d\n",【】);
p++;
}
}
31.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
32.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
33.對軟件是否能達到用戶所期望的要求的測試稱為【】。
34.在E-R圖中,矩形表示【】。
35.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
36.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
37.防止軟盤感染病毒的最有效的方法是【】。
38.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
39.以下程序運行后的輸出結(jié)果是______。
main()
{
intx=15;
while(x>10&&x<50)
{
x++;
if(x/3){x++;break;}
elsecontinue;
}
printf("%d\n",x);
}
40.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
三、1.選擇題(20題)41.有以下程序段main(){chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);}程序段運行后的輸出結(jié)果是()
A.aB.\0C.eD.f
42.有以下程序:#include<stdio.h>#include<string.h>main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\b",i,j);}程序運行后的輸出結(jié)果是
A.9,9B.8,9C.1,8D.9,8
43.以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()
A.棧B.線性表C.隊列D.二叉樹
44.若有“doublea;”,則正確的輸入語句是()。
A.scanf("%1f",A);
B.scanf("%f",&A);
C.scanf("%1f",&A);
D.scanf("%1e",A);
45.設(shè)有如下程序#inclide<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n,"**k);}上述程序的輸出結(jié)果是______。
A.運行錯誤B.100C.i的地址D.j的地址
46.有以下程序:#include<stdio.h>#defineN5#defineMN+1#definef(x)(x*M)main(){inti1,i2;i1=f(2);i2=f(1+1);printf("%d%d\n",i1,i2);}程序的運行結(jié)果是()。
A.1212B.117C.1111D.127
47.以下程序#include<stdio.h>#include<string.h>main(){char*p1="abc",*p2="ABC",str[50]="xyz",strcpy(str+2,strcat(p1,p2));printf("%s\n",str);}的輸出是______。
A.xyzabcABCB.zabcABCC.yzabcABCD.xyabcABC
48.以下不能正確計算代數(shù)式sin2()值的C語言表達式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
49.下列程序的輸出結(jié)果是______。main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}
A.0B.0.25C.0.5D.1
50.現(xiàn)有如下程序段#include"stdio.h"main(){inta[5][6]={23,3,65,21,6,78,28;5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};inti=0,j=5;printf("%d\n",*(&a[0][0]+2*i+j-2));}則程序的輸出結(jié)果為
A.21B.78C.23D.28
51.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
52.經(jīng)下列語句定義后,sizeof(x)、sizeof(y)、sizeof(a)、sizeof(b)在IBM-PC機上的值分別為______。charx=65;floaty=7.3;inta=100;doubleb=4.5;
A.2,2,2,4B.1,2,2,4C.1,4,2,8D.2,4,2,8
53.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
54.有三個關(guān)系R、S和T如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡兒積D.交
55.軟件生命周期一般包括:軟件計劃期、開發(fā)期和軟件運行期。因此,在下述項目中,______不是軟件開發(fā)期的內(nèi)容。
A.需求分析B.結(jié)構(gòu)設(shè)計C.程序編制D.性能優(yōu)化
56.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結(jié)果是
A.3B.4C.5D.6
57.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
58.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
59.下列關(guān)于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符′\0′作為字符串結(jié)束標(biāo)志
B.′\0′作為標(biāo)志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入′\0′
D.在C語言中,字符串常量隱含處理成以′\0′結(jié)尾
60.源程序的文檔化不包括()。
A.符號名的命名要有實際意義B.正確的文檔形式C.良好的視覺組織D.正確的程序注釋
四、選擇題(20題)61.
設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n—c>d)運算后,n的值是()n
A.0B.1C.2D.3
62.
63.
64.
65.(46)面向?qū)ο蟮脑O(shè)計方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領(lǐng)域的概念去思考
66.
67.
運行下列程序時,若輸入的數(shù)據(jù)為“1,2,3”,則輸出結(jié)果是()。
main
{floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a<b)
{t=a;a=b.b=t;)
if(a<c)
{t=a;a=c;c=t;)
it(b<c)
{t=b;b=C;c—=;)
printf("%f\n%f\n%f\n",a,b,c);
}
A.1.002.003.00
B.1.003.002.00
C.132
D.3.000002.000001.00000
68.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
69.
70.(50)數(shù)據(jù)庫概念設(shè)計的過程中,視圖設(shè)計一般有三種設(shè)計次序,以下各項中不對的是()
A.自頂向下
B.由底向上
C.由內(nèi)向外
D.由整體到局部
71.有以下程序
72.
73.
74.有以下程序,其輸出結(jié)果是()。
voidmain()
{
floarx=1;
inty;
x++;
y=x+1;
printf("x=%d,y=%f",x,y);
}
A.x=2,y=3
B.x=2,y=3.0
C.x=2.0,y=3
D.x=0,y=0.000000
75.耦合性和內(nèi)聚性是對模塊獨立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨立性
C.耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
76.以下敘述中正確的是()。
A.c語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行
B.可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行
C.c語言規(guī)定必須用main作為主函數(shù)名,程序從此開始執(zhí)行,在此結(jié)束
D.main作為用戶標(biāo)識符,用以命名任意一個函數(shù)作為主函數(shù)
77.以下敘述中正確的是()。
A)C程序中的#include和#define行均是C語句,只是語法不同
B)除賦值運算符外,逗號運算符的優(yōu)先級最低
C)C程序中,j++;是賦值語句
D)C程序中,+、-、*、/、%號是算數(shù)運算符,可用于整型和實型數(shù)的運算
78.有以下程序:
程序的運行結(jié)果是()。
A.0B.9C.6D.8
79.sizeof(float)是
A.一個雙精度表達式B.一個整型表達式
C.一種函數(shù)調(diào)用D.一個不合法的表達式
80.若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。#include#includemain{intn;chars1[20],s2[20],*p1,*p2;scanf("%s",s1);scanf("%S",s2);p1=s1;p2=s2;n=strcmp(p1,p2);printf("Vood\n",n);}A.A.-1B.0C."abcdef"D."abdef"
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是按以下遞歸公式求函數(shù)值。例如,當(dāng)給n輸入3時,函數(shù)值為60;當(dāng)給n輸入6時,函數(shù)值為480。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.D
2.D解析:運行時輸入該命令后,參數(shù)argc的值為4,字符串?dāng)?shù)組argv[1]、argv[2]、argv[3]分別為“12”、“345”、“678”,然后取這3個參數(shù)的第一個字符,將其轉(zhuǎn)化成原來的數(shù)字并組合成一個新的三位數(shù)。
3.D解析:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設(shè)計階段完成的任務(wù);選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務(wù):選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務(wù)。
4.C
5.B解析:通過賦值語句“s=x+3”,使指針變量s指向數(shù)組元素x[3],輸出語句中
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 7 Section A 3a-3c 教學(xué)設(shè)計 2023-2024學(xué)年人教版英語八年級下冊
- 2025至2030年中國轎車快修組合操作臺行業(yè)發(fā)展研究報告
- 森林砍伐施工方案
- 2025至2030年中國緞帶行業(yè)發(fā)展研究報告
- 2025至2030年中國磁環(huán)表磁分布測試系統(tǒng)行業(yè)發(fā)展研究報告
- 日語演講稿課件
- 高等學(xué)校標(biāo)準(zhǔn)化學(xué)生公寓達標(biāo)驗收評分細則
- 氨氯地平和氫氯噻嗪是廣泛使用的降壓藥
- 安全生產(chǎn)檢查紀(jì)律
- 2024年《中國竹制品消費調(diào)研》顯示僅38%的消費者了解竹材固碳能力
- 西方文論概覽(第二版)-第六章課件
- 初中語文教材常見問題答疑(八年級)
- 2024燃煤機組鍋爐水冷壁高溫腐蝕防治技術(shù)導(dǎo)則
- 2024北京一零一中初三(下)英語月考試卷和答案
- 2025屆高考語文復(fù)習(xí):語言文字運用之句子的表達效果+課件
- AIGC基礎(chǔ)與應(yīng)用全套教學(xué)課件
- 中國血脂管理指南(基層版2024年)解讀
- 2024年越南冷軋硅鋼行業(yè)現(xiàn)狀及前景分析2024-2030
- 2024-2034年中國燕麥草行業(yè)市場深度分析及投資策略咨詢報告
- 農(nóng)行鄉(xiāng)村振興服務(wù)方案
- 新媒體與社會性別智慧樹知到期末考試答案章節(jié)答案2024年復(fù)旦大學(xué)
評論
0/150
提交評論