




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022-2023年山東省濟(jì)南市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.判斷一個順序存儲的隊列sp為空的條件是()。
A.sp->front=sp->rear
B.sp->front=sp->rear+1
C.sp->front=sp->rear-1
D.sp->front=NULL
3.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);當(dāng)執(zhí)行上述程序段時,從鍵盤上輸入555667777abc后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
4.有以下程序:
程序的運行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
5.
6.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
7.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進(jìn)行的關(guān)鍵字依次為()
A.f,c,BB.f,d,BC.g,c,BD.g,d,B
8.若x=10010111,則表達(dá)式(3+(int)(x))&(~3)的運算結(jié)果是()。
A.10011000B.10001100C.10101000D.10110000
9.
10.實體聯(lián)系模型中實體與實體之間的聯(lián)系不可能是
A.一對一B.多對多C.一對多D.對零
11.
12.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}輸出結(jié)果是()。A.11B.10C.9D.1011
13.下面程序的運行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
14.
15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
16.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序運行后的輸出結(jié)果是()。A.1,2B.3,4C.5,6D.123,456
17.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運行結(jié)果是()。
A.0242B.1593C.1351D.286
18.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序執(zhí)行后的輸出結(jié)果是()。
A.ProhsbnB.PrphsbnC.ProgsbnD.Program
19.以下選項中合法的C語言常量是()。
A.2.0KbB.”C++’C.”\2.0D.1.01
20.鏈表不具備的特點是()。
A.可隨機(jī)訪問任一結(jié)點B.插入刪除不需要移動元素C.不必事先估計存儲空間D.所需空間與其長度成正比
二、2.填空題(20題)21.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。
22.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。
23.棧的基本運算有三種:入棧、退棧和【】。
24.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
25.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
26.若x為血類型,請寫出與!x等價的C語言表達(dá)式______。
27.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
28.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計算它們的和值。和值通過形參傳回主函數(shù)輸出。請?zhí)羁铡?/p>
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*Sum)
{inti,j,k,s=0
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=【】;
}
【】=s;
}
main()
{intx[M][N]={3,2,5,1,4,l,8,3),s;
SumColumMin(【】);
printf("%d\n",s);
}
29.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結(jié)果為
30.使用結(jié)構(gòu)體處理數(shù)據(jù)的場合是【】。
31.以下和程序中,主函數(shù)調(diào)用了lineMax函數(shù),實現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值,請?zhí)羁铡?/p>
#defineN3
#defineM4
voidlineMax(intx[N][M])
{inti,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]【】;
printf("Themaxvalueinlineis%d\n",【】);
}
{
main()
{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};
【】;
}
32.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
33.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>
main()
{intx[10],a[9],I;
for(I=0;I<10;I++)scanf("%d",&x[I]);
for(【】;I<10;I++)
a[I-1]=x[I]+【】;.
for(I=0;I<9;I++)printf("%d",a[I]);
printf("");
}
34.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)分別是順序、選擇和______。
35.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
36.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。
37.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達(dá)式是______。
38.下面的程序是將從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;
chars[21],*p;
for(i=0;i<20;i++)
s[i]=getehar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
39.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;}
return(num);
}
40.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
三、1.選擇題(20題)41.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
42.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];則b中的值是()。
A.5B.6C.8D.9
43.下列苯于C語言數(shù)據(jù)文件的敘述中正確的是()。
A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
44.若下列各選項中所有變量已正確定義,函數(shù)fun通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是()。
A.main(){...x=fun(2,10);...}floatfun(inta,intb){...}
B.floatfun(inta,intb){...}main(){...x=fun(i,j);...}
C.floatfun(int,int);main(){...x=fun(2,10);...}floatfun(ihta,intb){...}
D.main(){floatfun(inti,intj);...x=fun(i,j);...}floatfun(inta,intb){...}
45.以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
46.以理程序的輸出結(jié)果______。main(){charst[20]="he11\O\t\\";printf("%d%d\n",str1en(st),sizeof(st));}
A.99B.520C.1320D.2020
47.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
48.下面函數(shù)調(diào)用語句含有實參的個數(shù)為()。func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.3D.5
49.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。
A.10B.11C.12D.語法錯誤
50.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
51.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進(jìn)行說明,以下選項中錯誤的說明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
52.以下能正確定義一維數(shù)組的選項是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
53.若fp是指向某文件的指針,且已讀到文件的末尾,則C語言函數(shù)feof(fp)的返回值是()
A.EOFB.-1C.非零值D.NULL
54.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
55.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動移至下一個字符位置
56.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量
57.已知一個有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當(dāng)用二分法查找值為90的元素時,查找成功的比較次數(shù)為()。
A.1B.2C.3D.9
58.下列敘述中正確的是()。
A.黑箱(盒)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征
B.黑箱(盒)測試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征
C.白箱(盒)測試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)
D.上述三種說法都不對
59.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
60.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結(jié)果是(選項D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
四、選擇題(20題)61.以下敘述中正確的是
A.C程序的基本組成單位是函數(shù)B.C程序中的每一行只能寫一條語句
C.main()函數(shù)必須放在其他函數(shù)之前D.C語句必須在一行內(nèi)寫完
62.下列選項中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
63.C語言可執(zhí)行程序的開始執(zhí)行點是()。
A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
64.一個工作人員可以使用多臺計算機(jī),而一臺計算機(jī)可被多個人使用,則實體工作人員與實體計算機(jī)之間的聯(lián)系是()。
A.一對一B.一對多C.多對多D.多對一
65.
66.有以下程序程序運行后的輸出結(jié)果是()。
A.30B.10C.0D.64
67.
68.
69.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序運行后的輸出結(jié)果是()。A.6B.10C.11D.15
70.以下選項中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
71.
72.
73.
74.有以下程序(注:字符a的ASCIl碼值為97)
#include<stdio.h>
main()
{char*s={"abc")
do
{printf("%d",*S%10");++S;}
while(*s);
}
隉序運行后的輸出結(jié)果是()。
A.abcB.789C.7890D.979899
75.以下正確的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
76.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
77.下面結(jié)構(gòu)體的定義語句中,錯誤的是()。
A.structord{intx;intY;intz;}structorda;
B.structord{intx;imY;imz;};structorda;
C.structord{intx;intY;intZ;}a;
D.struct{intx;intY;intz;}a;
78.算法的時間復(fù)雜度是指()。
A.算法所處理的數(shù)據(jù)量B.算法的執(zhí)行時間C.算法在執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的語句或指令條數(shù)
79.軟件生命周期中所花費用最多的階段是()。
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護(hù)
80.
在下列給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。
A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個新數(shù)存放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為7654321時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<;stdi0.h>;
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個數(shù)
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.B
2.A
3.Ascanf是格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入指定的變量中。其中,在百分號(%)與格式碼之間的整數(shù)用于限制從對應(yīng)域讀入的最大字符數(shù)。所以j的值為55,y的值為566.0,字符數(shù)組name的值為7777abc。故本題答案為A選項。
4.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a[2]的值賦給變量y,所以輸出為y=3。
5.B
6.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s?!?*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運算符“*”,故選項A、C不能表示“a[3]”;選項D的“*s+3”等于“a[0]+3”。故本題答案為B選項。
7.A
8.A解析:本題主要考查運算表達(dá)式的運算。3+(int)(x)的結(jié)果是10011010,~3的結(jié)果是11111100,二者邏輯與得10011000。
9.B
10.D解析:實體聯(lián)系模型中實體與實體之間的聯(lián)系有一對一(1:1),一對多戌多對一(1:m或m:1),多對多(m:n)其中一對一是最常用的關(guān)系。
11.D
12.B本題考多循環(huán)的使用,當(dāng)j=10,i=9時,循環(huán)成立,第一個if條件為假,第二個if條件i==j-1成立,則輸出j的值為10,接者執(zhí)行i++后,i為10;當(dāng)i為10,for循環(huán)不成立,退出內(nèi)層循環(huán),此時執(zhí)行j++后,j為11,循環(huán)不成立,退出循環(huán)。
13.B解析:考查用指針引用字符串元素的方法。指針a通過數(shù)組元素下標(biāo)來從頭逐個地引用字符串item中的字符,判斷不是0~9之間的數(shù)字時,就去掉這個字符,所以程序結(jié)束后,字符串item中就只剩下和兩個字符了。
14.D
15.C解析:本題考核的知識點是字符數(shù)組的定義、賦初值以及函數(shù)sizeof()的應(yīng)用。本題中定義兩個字符型數(shù)組,其中a省略了長度,定義了b的長度為10,并賦初值分別為“abcdefg”和“abcdfg”。所以a的長度為賦值給它的字符串的字符個數(shù)7加上一個結(jié)束轉(zhuǎn)義字符,即a的長度為7+1為8.定義時b的長度定義為10,故b的長度為10,因此最后通過函數(shù)sizeof()求得的數(shù)組a和數(shù)組b的長度分別為8和10,所以,4個選項中選項C符合題意。
16.C此題是考查fprintf和fscanf,其中fprintf是向文件輸出,文件為da2.dat文件,fscanf是向文件輸入,所以根據(jù)程序循環(huán)寫入和寫出.可知答案為C。
17.B程序中,fun函數(shù)的功能是接收兩個數(shù)組a、b,以及數(shù)組a的元素個數(shù)n,然后通過for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回數(shù)組b的個數(shù)。所以main函數(shù)中,通過調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個元素,再通過for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項。
18.A解析:在函數(shù)fun1()中,首先將形參p的內(nèi)容存入臨時指針q中,然后使用—個while循環(huán),當(dāng)q所指內(nèi)容不是字符串結(jié)束標(biāo)志'\\0\'時,讓q所指內(nèi)容增1,然后將指針q增1指向下一個位置。所以函數(shù)fun1()實現(xiàn)的功能是:將傳入字符串的所有字符自增1。主函數(shù),指針p在被傳入fun1()函數(shù)之前,初始化指向的是寧符數(shù)組a的第4個元素\'g\',所以最終輸出的結(jié)果應(yīng)該是Prohsbn。故應(yīng)該選擇A。
19.DC語言中,常量有整型常量、實型常量、字符常量和字符串常量等。整型常量和實型常量又稱為數(shù)值型常量。其中整型常量只能用數(shù)字表示,不帶小數(shù)點。實型常量必須用帶小數(shù)點的數(shù)表示,所以選項A錯誤,選項D正確;字符型常量是用單引號標(biāo)注的單個字符,字符串常量是用雙引號標(biāo)注的若干個字符,選項B、C錯誤。故本題答案為D選項。
20.A
21.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。
22.88解析:本題考查帶參數(shù)的宏定義及相關(guān)運算.運算過程為:t=B*2=A+3*2=2+3*2=8。
23.讀棧頂元素讀棧頂元素解析:棧的基本運算有三種:入棧、退棧和讀棧頂元素。
入棧運算是指在棧頂位置插入一個新元素。這個運算有兩個基本操作:首先將棧頂指針進(jìn)一(即top加1),然后將新元素插入到棧頂指針指向的位置。
退棧運算是指取出棧頂元素并賦給一個指定的變量。這個運算有兩個基本操作:首先將棧頂元素(棧頂指針指向的元素)賦給一個指定的變量,然后將棧頂指針退一(即top減1)。
讀棧頂元素是指將棧頂元素賦給一個指定的變量。這個運算不刪除棧頂元素,只是將它的值賦給一個變量。
24.852852解析:循環(huán)前,變量y的值為9,其中的循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值減1。循環(huán)體是當(dāng)y能被3整除時輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán)。所以程序輸出852。
25.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
26.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
27.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
28.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本題中定義了一個函數(shù)SumColumMin(),該函數(shù)有兩個參數(shù),第一個參數(shù)為數(shù)組名,第二個參數(shù)為一個指針,用來訪問存放數(shù)組中每列元素中最小值的存儲空間的變量。所以在主函數(shù)中調(diào)用SumColumMin()函數(shù),應(yīng)該將數(shù)組x和sam作為實參傳給SumColumMin()中的形參,故第19個空格處應(yīng)該填x,&s。在SumColumMin()函數(shù)中用了兩重循環(huán),用N記錄數(shù)組的列,M記錄數(shù)組的行。內(nèi)循環(huán)共循環(huán)了M次,每循環(huán)一次將a[k][i]比較a[j][i](當(dāng)k=O時,a[k][i]第一行第一列的值,然后將該值依次和第一列中的每個值比較,讓a[k][i]表示較小的值,那么比較到最后一個元素后a[k][i]就是改列中最小元素的值),讓k記錄較小值元素的行下標(biāo),這樣通過M次循環(huán)得到每列中的最小元素,然后退出內(nèi)循環(huán),繼續(xù)執(zhí)行該次外循環(huán)里的其他語句,即將剛求得第i列的最小值a[k][i]累加到s中,故第17個空格處應(yīng)該填a[k][i],最后外循環(huán)共循環(huán)N次,將每列的最小值累加到s中,退出循環(huán),然后讓指針sum所指向的存儲空間的值為s,故第18個空格處應(yīng)該填*sum。
29.89218921
30.把不同類型的數(shù)據(jù)作為整體處理
31.p=jx[i][p]lineMax(x)
32.外模式外模式解析:數(shù)據(jù)庫系統(tǒng)的三級模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫的物理存儲結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
33.I=1x[I-1]I=1,x[I-1]解析:對于10個數(shù),相臨的兩個數(shù)相加取和,總共要進(jìn)行9次加法運算,所以空14處應(yīng)填入I=1。相臨的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應(yīng)填入x[I-1]。
34.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
35.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結(jié)構(gòu)體對鏈表的定義。
36.空間復(fù)雜度空間復(fù)雜度解析:算法執(zhí)行時所需要的存儲空間,稱為算法的空間復(fù)雜度。
37.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
38.\0s*p++\\0\r\ns\r\n*p++解析:本題先通過for循環(huán)從鍵盤讀入20個字符,然后賦值'\\0'作為字符串結(jié)束標(biāo)志,再使指針p指向字符串的首地址,最后通過while循環(huán)對字符串進(jìn)行掃描并輸出。
39.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1
40.
41.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進(jìn)制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。
42.D解析:p為指向整型數(shù)據(jù)的指針變量,存放的是a[3]的地址,即p指向數(shù)組{4,5,6,7,8,9,10},b=p[5],因此,b中的值是9。
43.D解析:C語言數(shù)據(jù)文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件,選項A)、B)、C)錯誤。ASCII文件又稱文本文件,它的每一個字節(jié)代表一個字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。
44.A解析:C語言程序從main函數(shù)開始執(zhí)行,當(dāng)程序中定義了多個函數(shù)時,通常情況下是先定義后調(diào)用。若被調(diào)用函數(shù)定義在主調(diào)函數(shù)之后,則必須先聲明后調(diào)用。在選項A)中,先執(zhí)行main函數(shù),并調(diào)用了fun函數(shù),而fun函數(shù)在此調(diào)用之前無定義也無聲明,故無法正常識別調(diào)用,所以錯誤。
45.D解析:本題考查的是文件操作函數(shù).題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結(jié)尾,因此選項A不對。ftell(fp)的作用是獲取當(dāng)前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(中)的作用是將文件指針重定位到文件開頭,所以應(yīng)該選擇D。
46.B解析:C語言中字符串是以'\\O'字符結(jié)束的,且strlen()函數(shù)計算的是'\\O'字符前的所有字符的個數(shù)。本題中strlen(st)應(yīng)為5。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof()函數(shù)是計算變量或數(shù)組的所分配到的內(nèi)存空間的大小。所以本題的sizeof(st)為20。
47.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
48.B
49.D解析:C語言中有基本的算術(shù)運算符(+、-、*、/)還包括自增自減運算符(++、-),在C語言解析表達(dá)式時,它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。
50.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進(jìn)制整數(shù),每個整數(shù)域?qū)捠?。而在C語言中規(guī)定:當(dāng)域?qū)捫∮趯嶋H寬度時域?qū)挷黄鹱饔茫磳嶋H寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進(jìn)制整數(shù)12,等于十進(jìn)制的10)。所以,4個選項中選項C符合題意。
51.A解析:本題考核的知識點是函數(shù)聲明的應(yīng)用。函數(shù)聲明是對所用到的函數(shù)的特征進(jìn)行必要的聲明,編譯系統(tǒng)以函數(shù)聲明中給出的信息為依據(jù),對調(diào)用表達(dá)式進(jìn)行檢測,以保證調(diào)用表達(dá)式與函數(shù)之間的參數(shù)正確傳遞。函數(shù)聲明的一般格式為:
類型標(biāo)識符函數(shù)名(類型標(biāo)識符形參…);
這些信息就是函數(shù)定義中的第一行的內(nèi)容。這里形參的名字是不重要的,重要的是類型標(biāo)識符,函數(shù)聲明中也可以不寫形參名只寫該形參的聲明類型,但不能只寫形參名而不寫該形參的類型。本題中,選項A中doublemyadd(doublea,b),沒寫出形參b的類型,故選項A不正確。所以,4個選項中選項A符合題意。
52.B解析:選項A)定義的是長度為5的數(shù)組元素,但初值有6個元素,所以錯誤;選項C)不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[];選項D)的類型說明符錯誤,應(yīng)改為char;選項B)中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以正確。
53.D
54.AA?!窘馕觥緾語言是函數(shù)式的語言。它的基本組成單位是函數(shù),在C語言中任何程序都是由一個或者多個函數(shù)組成的。
55.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:
intrewind(FILE*stream);并且無返值。
56.A本題考查的知識點是轉(zhuǎn)義字符。題目中的關(guān)鍵是八進(jìn)制101的十進(jìn)制是多少.八進(jìn)制的101轉(zhuǎn)換為十進(jìn)制為65,也就是字符A的ASCII。
57.BB?!窘馕觥扛鶕?jù)二分法查找法需要兩次:(1)首先將90與表中間的元素50進(jìn)行比較,由于90大于50,所以性表的后半部分查找。(2)第二次比較的元素是后半部分的中間元素,即90,這時兩者相等,即查找成功。
58.A解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例,選項A是正確的,選項B錯誤。白箱測試是根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來選取測試用例,選項C錯誤。正確答案為A。
59.A解析:在程序語句中,k的初始值為5,進(jìn)行第1次while循環(huán)后,k自減1為4,非0,執(zhí)行循環(huán)體里的printf語句,輸出1,此時k的值變?yōu)?。程序執(zhí)行第2次循環(huán)時,k自減1變?yōu)?,為假,退出while循環(huán)語句。所以程序的最后結(jié)果為1。
60.B本題考核的知識點是puts()函數(shù)的應(yīng)用。主函數(shù)中定義了一個字符數(shù)組s并賦初值,一個字符串指針變量ps并讓它指向s。程序中p+4的地址為數(shù)組第5個元素的地址,而調(diào)用put(str_adr)函數(shù)時,將從str_adr這一地址開始,依次輸出存儲單元中的字符,遇到第一個“\\0”時結(jié)束輸出,并自動輸出一個換行符。所以put(p++4)將輸出n/No,put(s)將從s第一個元素開始輸出到第3個元素結(jié)束(因為執(zhí)行*(p4)c0語句后s中的第5個元素的值為0,而s中的第4個元素為“\\”,puts將遇到“\\0”,結(jié)束輸出),即輸出yes。所以,4個選項中選項B符合題意。
61.A本題主要考查C語句中函數(shù)的基本知識。
在C語言中,函數(shù)是組成C語言程序的基本單位,而函數(shù)又主要由語句和注釋組成,在C程序中,每一行可以寫一條或多條語句,而且一條語句也可以分多行(編程時不推薦這樣做,這樣可讀性不好)。
main函數(shù)是C語言的入口函數(shù),一切程序都從這里開始執(zhí)行,在main函數(shù)中可以調(diào)用其他庫函數(shù)或用戶自定義的函數(shù),main函數(shù)不一定要放在程序的最前面,它可以出現(xiàn)在程序的任何位置。
62.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應(yīng)的ASCII碼值。"\0"用雙引號故不正確。
63.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
64.C因為一個人可以操作多個計算機(jī),而一臺計算機(jī)又可以被多個人使用,所以兩個實體之間是多對多的關(guān)系。
65.D
66.D本題目中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元,在程序整個運行期間都不釋放。因此第一次循環(huán)s的值為2;第二次循環(huán)中,返回的x的值為4,因此s的值為8;第三次循環(huán),返回的x的值為8,因此s的值為64。
67.C
68.B
69.C本題考查數(shù)組的使用。本題定義了兩個數(shù)組,注意數(shù)組的下標(biāo)是從0開始的,進(jìn)行第1次for循環(huán):當(dāng)i=0時,b[0]為數(shù)組b中第l個元素,結(jié)果為0,那么a[0]也是數(shù)組a中第l個元素,結(jié)果為1,所以S的值為1。第2次循環(huán):i此時自加為l,b[1]為數(shù)組的第2個元素,值為2,所以可求出a[2](數(shù)組中的第3個元素)的值為3,s=s+3,所以S的值為4。進(jìn)入第3次for循環(huán),依此類推,第3次for循環(huán)結(jié)束時s的值為6。第4次for循環(huán),s的值變?yōu)閘0。第5次for循環(huán)時,此時i的值為4,s的值變?yōu)閘l,i=5不符合題意,所以跳出循環(huán),輸出結(jié)果,所以本題答案為C。
70.A解析:在本題中k=n++,為后綴運算。根據(jù)其運算規(guī)則,首先n先加一,但n++表達(dá)式的值依然n原來的值,即k的值沒有改變。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達(dá)式和本題中表達(dá)式等價:選項B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達(dá)式和本題中表達(dá)式不等價:選項C中先計算表達(dá)式左邊的表達(dá)式++=N的值,執(zhí)行++n后,左邊的表達(dá)式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達(dá)式和本題中的表達(dá)式不等價;選項D中表達(dá)式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達(dá)式和本題中的表達(dá)式不等價。所以4個選項中A正確。
71.B
72.B
73.A
74.B\n程序中的*s%10是求余運算,分別是a、b、C的ASCIl碼值對10進(jìn)行求余運算然后輸出,所以輸出的答案為789。r
\n
75.D選項A中“\\\”為轉(zhuǎn)義字符,故選項A錯誤,選項B和C顯然不是字符串常量。選項D是一個字符串常量,稱為空串。
76.A解析:結(jié)構(gòu)化程序的概念首先是從以往編程過程中無限制地使用轉(zhuǎn)移語句而提出的。轉(zhuǎn)移語句可以使程序的控制流程強制性地轉(zhuǎn)向程序的任一處,在傳統(tǒng)流程圖中,就是用上節(jié)我們提到的“很隨意”的流程線來描述這種轉(zhuǎn)移功能。如果一個程序中多處出現(xiàn)這種轉(zhuǎn)移情況,將會導(dǎo)致程序流程無序可尋,程序結(jié)構(gòu)雜亂無章,這樣的程序是令人難以理解和接受的,并且容易出錯。尤其是在實際軟件產(chǎn)品的開發(fā)中,更多的追求軟件的可讀性和可修改性,象這種結(jié)構(gòu)和風(fēng)格的程序是不允許出現(xiàn)的。
77.AA選項stnletonl{intx;inty;int2;struetoraa;錯誤,不能在定義結(jié)構(gòu)體的同時,又用結(jié)構(gòu)體類型名定義變量。應(yīng)該寫成B選項或者D選項的格式。
78.C一個算法的時間復(fù)雜度是指執(zhí)行這個算法所需的極端工作量。
79.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護(hù)3個階段。本題中,詳細(xì)設(shè)計、軟件編碼和軟件測試都屬于軟什開發(fā)階段;維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段.軟件工程學(xué)的一個目的就是提高軟件的可維護(hù)性,降低維護(hù)的代價。
80.B
\n在while(E)中,表達(dá)式E可以是C語言中任意合法的條件表達(dá)式,但不能為空,由它來控制循環(huán)體是否執(zhí)行。在選項8中表達(dá)式E>0||E<0是一個邏輯表達(dá)式。
\n
81.
(1)void(long}t)
(2)sl=sl·10;
【考點分析】
函數(shù)定義,指針型變量;數(shù)值n和其各個位如何表示。
【解題思路】
(1)主函數(shù)中調(diào)用函數(shù)的參數(shù)為地址,因此函數(shù)fun的形式參數(shù)應(yīng)為指針類型。
(2)重新組合一個數(shù),從個位開始,然后十位,依次類推,因此每增加—位數(shù),原數(shù)值需乘以10,即sl=sl}10;。
82.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//進(jìn)行m次循環(huán)
\nif(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)
\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中
\n*n=j;//返回這些數(shù)的個數(shù)
\n}
\n【解析】本題需要先判斷1~m每一個整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個數(shù)通過形參n返回主函數(shù)。\n2022-2023年山東省濟(jì)南市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.判斷一個順序存儲的隊列sp為空的條件是()。
A.sp->front=sp->rear
B.sp->front=sp->rear+1
C.sp->front=sp->rear-1
D.sp->front=NULL
3.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);當(dāng)執(zhí)行上述程序段時,從鍵盤上輸入555667777abc后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
4.有以下程序:
程序的運行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
5.
6.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
7.若有序表的關(guān)鍵字序列為(b,c,d,e,f,g,q,r,s,t),則在二分查找關(guān)鍵字b的過程中,先后進(jìn)行的關(guān)鍵字依次為()
A.f,c,BB.f,d,BC.g,c,BD.g,d,B
8.若x=10010111,則表達(dá)式(3+(int)(x))&(~3)的運算結(jié)果是()。
A.10011000B.10001100C.10101000D.10110000
9.
10.實體聯(lián)系模型中實體與實體之間的聯(lián)系不可能是
A.一對一B.多對多C.一對多D.對零
11.
12.有以下程序:main{inti,j;for(j=10;j<11;j++){for(i=9;i<j;i++)if(!(j%i))break;if(i==j-1)printf("%d",j);}}輸出結(jié)果是()。A.11B.10C.9D.1011
13.下面程序的運行結(jié)果是
#include<stdio.h>
voiddelch(char*s)
{inti,j;
char*a;
a=s;
for(i=0,j=0;a[i]!=′\n′;i++)
if(a[i]>=′0′&&a[i]<=′9′)
{s[j]=a[i];j++;}
s[j]=′\0′;}
main()
{char*item="a34bc";
delch(item);
printf("\n%s",item);}
A.abcB.34C.a34D.a34bc
14.
15.有以下程序:main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}執(zhí)行后輸出結(jié)果是()。
A.77B.88C.810D.1010
16.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序運行后的輸出結(jié)果是()。A.1,2B.3,4C.5,6D.123,456
17.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運行結(jié)果是()。
A.0242B.1593C.1351D.286
18.有以下程序:voidfun1(char*p){char*q;q=p;while(*q!='\0'){(*q)++;q++;}}main(){chara[]={"Program"),*p;p=&a[3];fun1(p)printf("%s\n",A);}程序執(zhí)行后的輸出結(jié)果是()。
A.ProhsbnB.PrphsbnC.ProgsbnD.Program
19.以下選項中合法的C語言常量是()。
A.2.0KbB.”C++’C.”\2.0D.1.01
20.鏈表不具備的特點是()。
A.可隨機(jī)訪問任一結(jié)點B.插入刪除不需要移動元素C.不必事先估計存儲空間D.所需空間與其長度成正比
二、2.填空題(20題)21.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。
22.設(shè)有下列宏定義:#defineA2
#defineBA+3
則執(zhí)行賦值語句;t=B*2;t為int型變量后的值是______。
23.棧的基本運算有三種:入棧、退棧和【】。
24.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
25.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
26.若x為血類型,請寫出與!x等價的C語言表達(dá)式______。
27.數(shù)據(jù)庫的邏輯模型設(shè)計階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
28.以下程序中,函數(shù)SumColumMin的功能是:求出M行N列二維數(shù)組每列元素中的最小值,并計算它們的和值。和值通過形參傳回主函數(shù)輸出。請?zhí)羁铡?/p>
#defineM2
#defineN4
voidSumColumMin(inta[M][N],int*Sum)
{inti,j,k,s=0
for(i=0;i<N;i++)
{k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=【】;
}
【】=s;
}
main()
{intx[M][N]={3,2,5,1,4,l,8,3),s;
SumColumMin(【】);
printf("%d\n",s);
}
29.設(shè)有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序運行后,如果從鍵盤上輸入1298,則輸出結(jié)果為
30.使用結(jié)構(gòu)體處理數(shù)據(jù)的場合是【】。
31.以下和程序中,主函數(shù)調(diào)用了lineMax函數(shù),實現(xiàn)在N行M列的二維數(shù)組中,找出每一行上的最大值,請?zhí)羁铡?/p>
#defineN3
#defineM4
voidlineMax(intx[N][M])
{inti,j,p;
for(i=0;i<N;i++)
{p=0;
for(j=1;j<M;j++)
if(x[i][p]<x[i][j]【】;
printf("Themaxvalueinlineis%d\n",【】);
}
{
main()
{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};
【】;
}
32.數(shù)據(jù)庫系統(tǒng)其內(nèi)部分為三級模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式。
33.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>
main()
{intx[10],a[9],I;
for(I=0;I<10;I++)scanf("%d",&x[I]);
for(【】;I<10;I++)
a[I-1]=x[I]+【】;.
for(I=0;I<9;I++)printf("%d",a[I]);
printf("");
}
34.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)分別是順序、選擇和______。
35.有如下圖所示的雙鏈表結(jié)構(gòu),請根據(jù)圖示完成結(jié)構(gòu)體的定義:
structaa
{intdata;
【】}node;
36.算法執(zhí)行過程中所需要的存儲空間稱為算法的______。
37.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達(dá)式是______。
38.下面的程序是將從終端讀入的20個字符放入字符數(shù)組中,然后利用指針變量輸出上述字符串,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti;
chars[21],*p;
for(i=0;i<20;i++)
s[i]=getehar();
s[i]=【】;
p=【】;
while(*p)putchar(【】);
}
39.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>
strcen(chara[],charb[])
{intnum=0,n=0;
while(*(a+num)!=【】)num++;
while(b[n]){*(a+num)=b[n];num++;【】;}
return(num);
}
40.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
三、1.選擇題(20題)41.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
42.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];則b中的值是()。
A.5B.6C.8D.9
43.下列苯于C語言數(shù)據(jù)文件的敘述中正確的是()。
A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
44.若下列各選項中所有變量已正確定義,函數(shù)fun通過return語句返回一個函數(shù)值,以下選項中錯誤的程序是()。
A.main(){...x=fun(2,10);...}floatfun(inta,intb){...}
B.floatfun(inta,intb){...}main(){...x=fun(i,j);...}
C.floatfun(int,int);main(){...x=fun(2,10);...}floatfun(ihta,intb){...}
D.main(){floatfun(inti,intj);...x=fun(i,j);...}floatfun(inta,intb){...}
45.以下與函數(shù)fseek(fp,0L,SEEK_SET)有相同作用的是
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
46.以理程序的輸出結(jié)果______。main(){charst[20]="he11\O\t\\";printf("%d%d\n",str1en(st),sizeof(st));}
A.99B.520C.1320D.2020
47.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
48.下面函數(shù)調(diào)用語句含有實參的個數(shù)為()。func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.3D.5
49.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。
A.10B.11C.12D.語法錯誤
50.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
51.若程序中定義了以下函數(shù)doublemyadd(doublea,doubleb){return(a+b);}并將其放在調(diào)用語句之后,則在調(diào)用之前應(yīng)該對該函數(shù)進(jìn)行說明,以下選項中錯誤的說明是()A.doublemyadd(doublea,b);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doublea);
D.doublemyadd(doublex,doubley);
52.以下能正確定義一維數(shù)組的選項是______。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
53.若fp是指向某文件的指針,且已讀到文件的末尾,則C語言函數(shù)feof(fp)的返回值是()
A.EOFB.-1C.非零值D.NULL
54.C語言的基本單位是()。
A.函數(shù)B.過程C.子程序D.子函數(shù)
55.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動移至下一個字符位置
56.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量
57.已知一個有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當(dāng)用二分法查找值為90的元素時,查找成功的比較次數(shù)為()。
A.1B.2C.3D.9
58.下列敘述中正確的是()。
A.黑箱(盒)測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征
B.黑箱(盒)測試方法主要考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征
C.白箱(盒)測試不考慮程序內(nèi)部的邏輯結(jié)構(gòu)
D.上述三種說法都不對
59.有下列程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.4D.死循環(huán)
60.有以下程序main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結(jié)果是(選項D中的第一行是空行)A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
四、選擇題(20題)61.以下敘述中正確的是
A.C程序的基本組成單位是函數(shù)B.C程序中的每一行只能寫一條語句
C.main()函數(shù)必須放在其他函數(shù)之前D.C語句必須在一行內(nèi)寫完
62.下列選項中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
63.C語言可執(zhí)行程序的開始執(zhí)行點是()。
A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
64.一個工作人員可以使用多臺計算機(jī),而一臺計算機(jī)可被多個人使用,則實體工作人員與實體計算機(jī)之間的聯(lián)系是()。
A.一對一B.一對多C.多對多D.多對一
65.
66.有以下程序程序運行后的輸出結(jié)果是()。
A.30B.10C.0D.64
67.
68.
69.有以下程序:#include<stdio.h>main(){inta[5]={1,2,3,4,5),b[5]={0,2,1,3,o},i,s=0;for(i=o;i<5;i++)s=s+a[b[i]];printf(”%d\n”,s);}程序運行后的輸出結(jié)果是()。A.6B.10C.11D.15
70.以下選項中,與k=n++完全等價的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
71.
72.
73.
74.有以下程序(注:字符a的ASCIl碼值為97)
#include<stdio.h>
main()
{char*s={"abc")
do
{printf("%d",*S%10");++S;}
while(*s);
}
隉序運行后的輸出結(jié)果是()。
A.abcB.789C.7890D.979899
75.以下正確的字符串常量是()。A.A."\\\"
B.'abc'
C.OlympicGames
D.""
76.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.投影D.并
77.下面結(jié)構(gòu)體的定義語句中,錯誤的是()。
A.structord{intx;intY;intz;}structorda;
B.structord{intx;imY;imz;};structorda;
C.structord{intx;intY;intZ;}a;
D.struct{intx;intY;intz;}a;
78.算法的時間復(fù)雜度是指()。
A.算法所處理的數(shù)據(jù)量B.算法的執(zhí)行時間C.算法在執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的語句或指令條數(shù)
79.軟件生命周期中所花費用最多的階段是()。
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護(hù)
80.
在下列給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。
A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:從低位開始依次取出長整型變量s中奇數(shù)位上的數(shù),構(gòu)成一個新數(shù)存放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為7654321時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
#include<;stdi0.h>;
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個數(shù)
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.B
2.A
3.Ascanf是格式
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 快手小店轉(zhuǎn)讓協(xié)議書
- 雙方約定雇傭協(xié)議書
- 酒吧位置轉(zhuǎn)讓協(xié)議書
- 同城開店協(xié)議書范本
- 雙人股份轉(zhuǎn)讓協(xié)議書
- 企業(yè)歸屬協(xié)議書范本
- 企業(yè)食堂供貨協(xié)議書
- 酒席帳篷租賃協(xié)議書
- 立項協(xié)議書范本模板
- 就業(yè)協(xié)議書蓋章規(guī)定
- GB 29518-2013柴油發(fā)動機(jī)氮氧化物還原劑尿素水溶液(AUS 32)
- 聯(lián)合瑞文智商測試
- 第5章 三角函數(shù)【知識導(dǎo)圖 】 高考數(shù)學(xué)復(fù)習(xí)思維導(dǎo)圖(人教A版2019)(必修第一冊)
- 贛價協(xié)〔2023〕9號江西省建設(shè)工程造價咨詢服務(wù)收費基準(zhǔn)價
- DBJ53T-19-2007加芯攪拌樁技術(shù)規(guī)程
- 職稱評定打分細(xì)則(學(xué)院排名用)
- 檢驗員基礎(chǔ)知識培訓(xùn).ppt
- 心理治療師復(fù)習(xí)
- 液壓常用元件符號
- 第十一章 地役權(quán)
- 重慶某高速公路合同段分離式隧道實施性施工組織設(shè)計(低瓦斯隧道)
評論
0/150
提交評論