版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年陜西省西安市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)測(cè)試卷一(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
2.計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言是
A.匯編語(yǔ)言B.自然語(yǔ)言C.機(jī)器語(yǔ)言D.高級(jí)語(yǔ)言
3.下列字符串是標(biāo)識(shí)符的是()。
A.aaB.a-classC.intD.LINE1
4.有以下程序,其中函數(shù)f的功能是將多個(gè)字符串按字典順序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)ifstrcmp(p[i],p[j])>0{t=p[i]p[i]=p[j];p[j]=t;}}main(){char*p[5]=("abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序運(yùn)行后的輸出結(jié)果是______。A.2B.3C.6D.4
5.以下選項(xiàng)中非法的字符常量是A.A.'\101'
B.'\65'
C.”\xff'
D.'\019'
6.連通圖G中有n個(gè)頂點(diǎn),G的生成樹是()連通子圖。
A.包含G的所有頂點(diǎn)B.包含G的所有邊C.不包含G的所有頂點(diǎn)D.包含G的所有頂點(diǎn)和所有邊
7.下列敘述中錯(cuò)誤的是()。
A.C語(yǔ)言程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行過(guò)程中進(jìn)行的
B.預(yù)處理命令行的最后不能以分號(hào)表示結(jié)束
C.“#defmeMAX”是合法的宏定義命令行
D.在程序中,凡是以“#”開始的語(yǔ)句行都是預(yù)處理命令行
8.
9.若有說(shuō)明:inta[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是
A.2B.3C.4D.無(wú)確定值
10.設(shè)有定義:floata=2,b=4,h=3;以下c語(yǔ)言表達(dá)式中與代數(shù)式(a+B)h計(jì)算結(jié)果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
11.有以下程序:#include<stdio.h>#defineSUB(x,y)(x)*(y)main(){inta=3,b=4;printf(“%d\n”,SUB(a++,b++));程序運(yùn)行后的輸出結(jié)果是()。
A.15B.12C.16D.20
12.以下敘述中正確的是()。
A.C語(yǔ)言比其他語(yǔ)言高級(jí)
B.C語(yǔ)言可以不用編譯就被計(jì)算機(jī)識(shí)別并執(zhí)行
C.C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式
D.C語(yǔ)言出現(xiàn)最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)
13.fseek函數(shù)的正確調(diào)用形式是()。
A.fseek(文件指針,起始點(diǎn),位移量)
B.fseek(文件指針,位移量,起始點(diǎn))
C.fseek(位移量,起始點(diǎn),文件指針)
D.fseek(起始點(diǎn),位移量,文件指針)
14.C語(yǔ)言中標(biāo)準(zhǔn)庫(kù)函數(shù)fputs(str,fp)的功能是()。
A.從str指向的文件中讀一個(gè)字符串存入fp指向的內(nèi)存
B.把str所指的字符串輸出到fp所指的文件中
C.從fp指向的文件中讀一個(gè)字符串存入str指向的內(nèi)存
D.把fp指向的內(nèi)存中的一個(gè)字符串輸出到str指向的文件
15.
16.
17.有以下程序:main{inta[]=(2,4,6,8,10},y=0,x,*P;p=&a[1];for(x=1;x<3;x++)y+=p[x];printf("%d\n,y");}程序運(yùn)行后的輸出結(jié)果是()。A.10B.11C.14D.15
18.有以下程序:
A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,
19.下列運(yùn)算符中優(yōu)先級(jí)最低的算符是()。
A.||B.!=C.<;=D.十
20.有以下程序:#include<stdio.h>main(){inta=1,b=2,c=3,d=4,r=0;if(a!=1)r=1;if(b==2)r=2;elseif(c!=3)r=3;elseif(d==4)r=4;printf(“%d\n”,r);}程序運(yùn)行后的輸出結(jié)果是()。
A.0B.4C.1D.2
二、2.填空題(20題)21.以下程序的功能是從鍵盤上輸入一行字符,存入一個(gè)字符數(shù)組中,然后輸出該字符串。請(qǐng)?zhí)羁铡?/p>
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=【】;
sptr=str1
while(*sptr)putchar(*sptr【】);
}
22.【】是一種信息隱蔽技術(shù),目的在于將對(duì)象的使用者和對(duì)象的設(shè)計(jì)者分開。
23.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
24.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
25.下列程序的輸出結(jié)果是______。
main()
{inta[]={31,27,20,12,6,1},*p=a;
p++;
printf("%d\n",*(p+2));
}
26.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)。
27.以下程序的輸出結(jié)果是______。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
28.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=10,y=20,t=0
if(x==y)t=x;x=y;y=t;
printf("%d,%d/n",x,y);
}
29.下面程序的功能是:輸出100以內(nèi)能被3整除且個(gè)位數(shù)為9的所有整數(shù),清填空。main(){inti,j;for(i=0;();i++){j=i*10+9;if(j%3!=0)continue;printf("%d",j);}}
30.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
31.某二義樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有______個(gè)葉子結(jié)點(diǎn)。
32.若輸入5、9,以下程序的運(yùn)行結(jié)果為【】。
main()
{inta,b,*pt1,*pt2;
printf("inputa,b:");
scanf("%d%d",&a,&b);
pt1=&a;
pt2=&b;
if(a<b)swap(pt1,pt2);
printf("\n%d,%d\n",*pt1,*pt2);
}
swap(p1,p2)
int*p1,*p2;
{int*p;
p=p1;
p1=p2;
p2=p;
}
33.計(jì)算機(jī)中網(wǎng)絡(luò)通信協(xié)議IP是【】。
34.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
35.實(shí)現(xiàn)程序可將磁盤中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
36.以下條件表達(dá)式可計(jì)算:1+|a|的值,請(qǐng)?zhí)羁?。a>=0?[6]:[7]
37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于【】。
38.若按功能劃分,軟件測(cè)試的方法通常分為白盒測(cè)試方法和【】測(cè)試方法。
39.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。
40.下列程序運(yùn)行后的輸出結(jié)果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運(yùn)行程序,輸入HOWAREYOU。
三、1.選擇題(20題)41.算法的時(shí)間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時(shí)間B.算法程序的長(zhǎng)度C.算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的指令條數(shù)
42.有三個(gè)關(guān)系R、s和T如下:
由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.并B.自然連接C.笛卡爾積D.交
43.結(jié)構(gòu)化程序設(shè)計(jì)的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計(jì)方法C.結(jié)構(gòu)化設(shè)計(jì)理論D.結(jié)構(gòu)化編程方法
44.對(duì)以下說(shuō)明語(yǔ)句的正確理解是inta[10]={6,7,8,9,10};
A.將5個(gè)初值依次賦給a[1]至a[5]
B.將5個(gè)初值依次賦給a[0]至a[4]
C.將5個(gè)初值依次賦給a[6]至a[10]
D.因?yàn)閿?shù)組長(zhǎng)度與初值的個(gè)數(shù)不相同,所以此語(yǔ)句不正確
45.以下程序的輸出結(jié)果是f(intb[],intm,intn){inti,s=0;for(i=m;i<n;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}
A.10B.18C.8D.15
46.下列程序語(yǔ)句中,不正確的是______。
A.maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}intadd(floatx,floaty){……}
B.main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
C.floatadd()maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
D.floatadd(floatx,floaty){……}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}
47.若有說(shuō)明:int*p,m=5,n;以下正確的程序段是()。
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=6;
D.p=&n;*p=m;
48.以下選項(xiàng)中可作為C語(yǔ)言合法整數(shù)的是A.10110BB.386C.0XffaD.x2a2
49.若有以下說(shuō)明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯(cuò)誤的是
A.data的每個(gè)成員起始地址都相同
B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等
C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000
D.data可以作為函數(shù)的實(shí)參
50.有以下程序main(){union{unsignedintn;unsignedcharc;}ul;u1.C='A';pfintf("%c\n",u1.n);}執(zhí)行后輸出結(jié)果是
A.產(chǎn)生語(yǔ)法錯(cuò)B.隨機(jī)值C.AD.65
51.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖牵ǎ?/p>
A.多態(tài)性B.標(biāo)識(shí)惟一性C.封裝性D.耦合性
52.若有如下程序:main(){intm=-1;printf("%d,%u,%0,%x",m,m,m,m);}則程序運(yùn)行后的輸出結(jié)果是()
A.-1,65535,177777,ffff
B.-1,-1,177777,fffe
C.-1,1,177777,ffff
D.-1,65535,177776,fffe
53.已知i、j、k為血型變量,若要從鍵盤輸入2、3、4<CR>,使i、j、k的值分別為2、3、4,下列正確的輸入語(yǔ)句是()。
A.scanf("%3d,%3d,%3d",&i,&j,&k);
B.scan("%d,%d,%d",&i,&j,&k);
C.scan("%do/od%d",&i,及j,&k);
D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
54.以下敘述中不正確的是
A.C語(yǔ)言中的文本文件以ASCII碼形式存儲(chǔ)數(shù)據(jù)
B.C語(yǔ)言中對(duì)二進(jìn)制文件的訪問(wèn)速度比文本文件快
C.C語(yǔ)言中,隨機(jī)讀寫方式不適用于文本文件
D.C語(yǔ)言中,順序讀寫方式不適用于二進(jìn)制文件
55.若有定義inta[10],*p=a,則p+6表示()。
A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5
56.有以下程序:#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是()。
A.在給p和q數(shù)組置初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,故輸出的長(zhǎng)度都為3
B.由于p數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定;但q數(shù)組中字符串長(zhǎng)度為3
C.由于q數(shù)組中沒(méi)有字符串結(jié)束符,長(zhǎng)度不能確定;但p數(shù)組中字符串長(zhǎng)度為3
D.由于p和q數(shù)組中都沒(méi)有字符串結(jié)束符,故長(zhǎng)度都不能確定
57.有以下程序main(){inti=1,j=2,k=3;if(i++==l&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);程序運(yùn)行后的輸出結(jié)果是
A.123B.234C.223D.233
58.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)c函數(shù)可以單獨(dú)作為一個(gè)C程序文件存在
59.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
60.設(shè)x=011050,則x=x&01252的值是()。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
四、選擇題(20題)61.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當(dāng)執(zhí)行程序時(shí),輸出的結(jié)果是()。A.-1B.1C.4D.0
62.
能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)
B.(x>=1)
C.
D.(x<2=10)
E.
F.(x>=100)
G.
H.(x<=1l0)
I.(gt;=1)&&(x<=10)
J.
K.(gt;=100)&&(x<=110)
63.若變量均已正確定義并賦值,以下合法的C語(yǔ)言賦值語(yǔ)句是()。
A.X…Y5;B.X=n%2.5;C.X+n=i;D.x=5=4+1:
64.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測(cè)試計(jì)劃B.軟件詳細(xì)設(shè)計(jì)說(shuō)明書C.用戶手冊(cè)D.軟件需求規(guī)格說(shuō)明書
65.若變量已正確定義,在if(W)塒ntf(”%d\n”,k);中,以下不可替代w的是()。
A.a<>b+CB.ch=getcharC.a==b+CD.a++
66.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程
C.軟件的開發(fā)過(guò)程
D.軟件的運(yùn)行維護(hù)過(guò)程
67.
68.
若有以下程序段,w和k都是整型變量:
┇
w=k:
LB:if(w==0)gotoLE;
W--:
printf("*")
gotoLB;
LE;
┇
則不能與上面程序段等價(jià)的循環(huán)語(yǔ)句是()。
A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
69.在函數(shù)中默認(rèn)存儲(chǔ)類型說(shuō)明符的變量應(yīng)該是________存儲(chǔ)類型。
A.內(nèi)部靜態(tài)B.外部C.自動(dòng)D.寄存器
70.有三個(gè)關(guān)系R、S和t如下:由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.笛卡兒積B.交C.并D.自然連接
71.
下述程序的輸出結(jié)果是()。
#defineN20
voidfun(inta[],intn,intm)
{inti,j;
for(i=m;i>n;i--)a[i+1]=a[i];
}
main()
{inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i<5;i++)printf("%d",a[i]);
}
A.10234B.12344C.12334D.12234
72.
73.
74.下列選項(xiàng)中屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。
A.可封裝
B.多態(tài)性
C.自下而上
D.逐步求精
75.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()
A.軟件結(jié)構(gòu)定義
B.模塊獨(dú)立性
C.模塊類型劃分
D.模擬耦合度
76.
運(yùn)行下列程序時(shí),若輸入的數(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
77.以下敘述中錯(cuò)誤的是()。
A.可以給指針變量賦一個(gè)整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值
D.當(dāng)在程序的開頭包含頭文件stdi0.h時(shí),可以給指針變量賦NULL、、、
78.若已定義:inta[9],*p=a;并在以后的語(yǔ)句中未改變p的值,不能表示a[1]地址的表達(dá)式為()。
A.p+1B.a+1C.a++D.++p
79.
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個(gè)整數(shù)m是否是素?cái)?shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main)函數(shù),不得增行或刪行,也不得,t更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中,請(qǐng)編寫函數(shù)proc(),它的功能是:把指定分?jǐn)?shù)范圍之外的學(xué)生數(shù)據(jù)放在b所指的數(shù)組中,分?jǐn)?shù)范圍之外的學(xué)生人數(shù)由函數(shù)值返回。
例如,輸入的分?jǐn)?shù)是70和79,則應(yīng)當(dāng)把分?jǐn)?shù)低于70和高于79的學(xué)生數(shù)據(jù)輸出,不包含70分和79分的學(xué)生數(shù)據(jù)。主函數(shù)中把70放在low中,把79放在heigh中。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫的若干語(yǔ)句。
試題程序:
參考答案
1.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過(guò)程設(shè)計(jì)表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
2.C
3.A
\nC語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。int就是表達(dá)整型變量類型的標(biāo)識(shí)符,它不能用做變量名和函數(shù)名。
\n
4.D解析:字符串比較函數(shù)“strcmp(char*s1,char*s2)”的比較規(guī)則是對(duì)兩個(gè)字符串自左至右逐個(gè)字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到到"\\0"為止。如果全部相同,則認(rèn)為相等:若出現(xiàn)不相同的字符,則以第一個(gè)不相同的字符的比較結(jié)果為準(zhǔn)。當(dāng)s1<s2,返回值<0;當(dāng)s1=s2時(shí),返回值二0:當(dāng)s1>s2時(shí),返回值>0。故本題經(jīng)過(guò)排序后,得到第二個(gè)字符串是“abbd”,所以輸出結(jié)果是4。
5.D【答案】D
【知識(shí)點(diǎn)】字符常量的考察
【解析】在C語(yǔ)言中要求八進(jìn)制字符常量的表示為\\ddd形式,但是八進(jìn)制中只有0~7,7個(gè)數(shù)字,沒(méi)有9這個(gè)數(shù)字,所以選擇D。
6.A
7.A預(yù)處理是在程序編譯之前進(jìn)行的,所以A選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
8.A
9.B解析:本題考查二維數(shù)組的定義方式。第一維的大小由以下方法判斷:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大??;2)當(dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),則第一維的劃、:所得的商數(shù)+1。
10.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
11.B#define命令是C語(yǔ)言中的一個(gè)宏定義命令,標(biāo)識(shí)符一般使用大寫,用標(biāo)識(shí)符定義一個(gè):字符串,該標(biāo)識(shí)符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進(jìn)行其他操作,僅僅只是替換標(biāo)識(shí)符。后綴自增運(yùn)算a++表示先運(yùn)算,后自加。意思是遇到a++了,先把當(dāng)前的a的值拿來(lái)參加運(yùn)算,后面再自加。SUB(a++,b++)→(a++)*(b++)=3*4。故本題答案為B選項(xiàng)。
12.C解析:計(jì)算機(jī)語(yǔ)言分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言,C語(yǔ)言屬于高級(jí)語(yǔ)言,但并非比其他語(yǔ)言高級(jí),選項(xiàng)A)錯(cuò)誤;除了機(jī)器語(yǔ)言外,其他各種語(yǔ)言都必須編譯成能被計(jì)算機(jī)識(shí)別的機(jī)器代碼才能執(zhí)行,選項(xiàng)B)錯(cuò)誤;C語(yǔ)言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語(yǔ)言,選項(xiàng)D)錯(cuò)誤。
13.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn))
“起始點(diǎn)”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”。
“位移量”指以“起始點(diǎn)”為基點(diǎn),向前移動(dòng)的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件長(zhǎng)度大于64k時(shí)不致出現(xiàn)問(wèn)題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字末尾加一個(gè)字母L表示long型。
14.B函數(shù)fputs(str,fp)的功能是把str所指的字符串輸出到fp所指的文件中。故本題答案為B選項(xiàng)。
15.A
16.B
17.C由題目的語(yǔ)句P=&a[1]可知,P指向a數(shù)組中下標(biāo)為1的元素“4”,又因?yàn)镻為指針變量,所以P[x]與*(p+x)等價(jià),因而在for循環(huán)語(yǔ)句中,第一次循環(huán)P[1]指向a數(shù)組中下標(biāo)為2的元素“6”,第二次循環(huán)p[2]指向a數(shù)組中下標(biāo)為3的元素“8”,所以y=6+8=14,因而選項(xiàng)C為正確答案。
18.C即輸出x[0][2]x[l][1]x[2][0]分別為357。
19.AC語(yǔ)言中規(guī)定運(yùn)算符的優(yōu)先順序:一元算術(shù)運(yùn)算符一>二元算術(shù)運(yùn)算符一>關(guān)系運(yùn)算符一>邏輯運(yùn)算符一>賦值運(yùn)算符,A項(xiàng)中為邏輯運(yùn)算符,B項(xiàng)和c項(xiàng)都為關(guān)系運(yùn)算符,D項(xiàng)為一元運(yùn)算符。因此最低的是A項(xiàng)。
20.D第1個(gè)if語(yǔ)句是單獨(dú)的一條語(yǔ)句,所以執(zhí)行完第1個(gè)if語(yǔ)句后,r的值仍為初值0。第2個(gè)if語(yǔ)句與后續(xù)的兩個(gè)elseif都是嵌套的,所以只會(huì)執(zhí)行其中的一個(gè)語(yǔ)句,即“if(b==2)r=2;”這條語(yǔ)句。故本題答案為D選項(xiàng)。
21.\0'++
22.封裝封裝解析:面向?qū)ο蠹夹g(shù)中包括以下幾個(gè)基本概念,即對(duì)象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對(duì)象的使用者對(duì)象的和設(shè)計(jì)者分開。
23.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒(méi)有特別說(shuō)明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來(lái)。
24.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
25.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個(gè)指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過(guò)p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。
26.存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)存儲(chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間。供隊(duì)列循環(huán)使用。可知,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。
27.3535解析:函數(shù)swap(int*a,int*b)的功能是實(shí)現(xiàn)*a和*b中兩個(gè)數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒(méi)有發(fā)生變化,所以輸出結(jié)果為35。
28.20020,0解析:本題考查的知識(shí)點(diǎn)是if語(yǔ)句的基本概念。在主函數(shù)中首先定義了三個(gè)整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語(yǔ)句,在if后面括號(hào)內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語(yǔ)句“t=x”,然后退出if語(yǔ)句,順序執(zhí)行語(yǔ)句X=y;y=t;。執(zhí)行完這兩條語(yǔ)句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
29.i<10i<10解析:分析程序,當(dāng)(i=0,1,2,…)時(shí),“j=i*10+9”語(yǔ)句的運(yùn)行結(jié)果是(9,39,69,99)個(gè)位數(shù)為9的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%3!=0)continue;”語(yǔ)句的功能是當(dāng)條件不能被3整除時(shí),繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時(shí)輸出該數(shù),即輸出的數(shù)滿足條件100以內(nèi)能被3整除且個(gè)位數(shù)為9。
30.HelloHello解析:字符串中,數(shù)值0或符號(hào)'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。
31.1919解析:二叉樹具有如下性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。根據(jù)題意,度為2的節(jié)點(diǎn)為18個(gè),那么,葉子結(jié)點(diǎn)就應(yīng)當(dāng)是19個(gè)。
32.59
33.網(wǎng)際協(xié)議網(wǎng)際協(xié)議
34.NN解析:函數(shù)說(shuō)明語(yǔ)句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符'A'的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。
35.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語(yǔ)句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對(duì)應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
36.
37.存儲(chǔ)結(jié)構(gòu)
38.黑盒軟件測(cè)試的方法有三種:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試和正確性證明。設(shè)計(jì)測(cè)試實(shí)例的方法一般有兩類:黑盒測(cè)試法和白盒測(cè)試法。在使用黑盒法設(shè)計(jì)測(cè)試實(shí)例時(shí),測(cè)試人員將程序看成一個(gè)“黑盒”,即不關(guān)心程序內(nèi)部是如何實(shí)現(xiàn)的,只是檢查程序是否符合它的“功能說(shuō)明”,所以使用黑盒法設(shè)計(jì)的測(cè)試用例完全是根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)的。
39.交換排序交換排序解析:常見的排序方法有插入排序(包括簡(jiǎn)單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡(jiǎn)單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。
40.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。
41.C解析:算法的時(shí)間復(fù)雜度實(shí)際上就是執(zhí)行算法程序所需要的計(jì)算工作量。為了客觀地反映算法性能,在度量算法的時(shí)間復(fù)雜度時(shí),應(yīng)該與編寫算法程序所使用的程序設(shè)計(jì)語(yǔ)言、執(zhí)行算法程序時(shí)所使用的計(jì)算的工具以及程序員的水平無(wú)關(guān)。選項(xiàng)A錯(cuò)誤,因?yàn)橥凰惴ǔ绦蛟谶\(yùn)行速度不同的計(jì)算機(jī)上運(yùn)行時(shí),其計(jì)算時(shí)間是不同的。選項(xiàng)B錯(cuò)誤,因?yàn)樗惴ㄋ帉懙某绦蜷L(zhǎng)度往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),同一個(gè)算法,用不同的程序設(shè)計(jì)語(yǔ)言或者不同的程序員所編寫出的程序其長(zhǎng)度可能會(huì)大不相同。選項(xiàng)D錯(cuò)誤,因?yàn)楦鶕?jù)一個(gè)算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計(jì)語(yǔ)言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來(lái)度量算法的時(shí)間復(fù)雜度。所以,本題正確答案為C。
42.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
43.CC?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計(jì)的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計(jì)理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化編程方法。
44.B解析:本題中,表達(dá)式將5個(gè)初值分別賦給a[0]至a[4],系統(tǒng)自動(dòng)給后面的元素a[5]至a[9]賦0。
45.A解析:本題考核的知識(shí)點(diǎn)是數(shù)組名作為函數(shù)參數(shù)的應(yīng)用.在malii()函數(shù)中定義了一個(gè)變量x,以及一個(gè)有9個(gè)元素的數(shù)組a,并且每個(gè)元素分別賦初值為1、2、3、4、5、6、7、8和9.執(zhí)行函數(shù)調(diào)用f(a,3,7),把a(bǔ)的首地址賦給形參b,把3和7分別賦給形參m和n。在f()函數(shù)中,for循環(huán)執(zhí)行了2次:第一次,i的值為3,相當(dāng)于執(zhí)行7語(yǔ)句“s=s+b[3]”,br3J的值就是a[3]的值4,故s的值變?yōu)?;第二次,i值為5,相當(dāng)于執(zhí)行了語(yǔ)句“s=s+b[5];”,b[5]的值6,故s的值變?yōu)?0。把s作為函數(shù)值返回并賦值給x。所以,4個(gè)選項(xiàng)中A為所選。
46.B
47.D解析:“&”是求址運(yùn)算符,“*”是指針變量說(shuō)明符。選項(xiàng)A),B)應(yīng)改為scanf('%d',p);選項(xiàng)C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,這樣做很危險(xiǎn),建議不使用。
48.C解析:本題考核的知識(shí)點(diǎn)是整數(shù)及常數(shù)的表示方法。在C語(yǔ)言中,整數(shù)常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來(lái)表示,選項(xiàng)A為二進(jìn)制表示,故選項(xiàng)A不正確;選項(xiàng)B是八進(jìn)制表示法,但在八進(jìn)制數(shù)中,各個(gè)位數(shù)只能為數(shù)字。到7中的一個(gè),而在選項(xiàng)B中,有一個(gè)數(shù)字8,故選項(xiàng)B不正確;選項(xiàng)C為十六進(jìn)制表示法正確:選項(xiàng)D中也為十六進(jìn)制表示法,但十六進(jìn)制數(shù)以O(shè)x開頭,故選項(xiàng)D不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)c符合題意。
49.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲(chǔ)區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個(gè)成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項(xiàng)B是正確的。由于共用體變量中的所有成員共享存儲(chǔ)空間,因此變量中的所有成員的首地址相同,選項(xiàng)A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實(shí)參進(jìn)行傳遞,也可以傳送共用體變量的地址,選項(xiàng)D也是正確的。在內(nèi)存中,實(shí)數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個(gè)數(shù)值,因此選項(xiàng)C是錯(cuò)誤的。
50.C解析:在定義共用體的同時(shí),定義了一個(gè)共用體型變量u1,共占兩個(gè)字節(jié),有兩個(gè)成員n和c,兩個(gè)成員的首地址是相同的。因此給u1,c賦一個(gè)“A”,其實(shí)就是給無(wú)符號(hào)整型成員u1.n的低字節(jié)賦一個(gè)“A”,輸出u1,n的時(shí)候是以字符型的形式輸出,只輸出它的低地址的一個(gè)字節(jié),因此為“A”。
51.DD)【解析】面向?qū)ο笤O(shè)計(jì)方法與面向過(guò)程設(shè)計(jì)方法有本質(zhì)不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。其特點(diǎn)包括:標(biāo)識(shí)惟一性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性好。
52.A
53.B解析:函數(shù)scan()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項(xiàng)地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時(shí)要求按一一對(duì)應(yīng)的位置原樣輸入這些字符,其中的逗號(hào)也必須輸入。
54.D解析:在C語(yǔ)言中文本文件是以ASCII碼形式存放的,每個(gè)字符占一個(gè)字節(jié)。由于數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCII碼轉(zhuǎn)換成二進(jìn)制,因此速度較快。在文本文件葉,,數(shù)據(jù)以ASCII碼形式存放,用戶很難判定一個(gè)數(shù)據(jù)到底占幾個(gè)字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以順序讀寫。故D選項(xiàng)為所選。
55.C解析:指針中存放的是變量的地址,指針也可以進(jìn)行加減運(yùn)算,這時(shí)指針移動(dòng)的最小單位是一個(gè)存儲(chǔ)單元,而不是一個(gè)字節(jié)。所以題中p+6指的是將指針向后移動(dòng)了6個(gè)存儲(chǔ)單元,指向a[6],存放的是a[6]的地址。
56.A解析:在給p和q數(shù)組賦初值時(shí),系統(tǒng)會(huì)自動(dòng)添加字符串結(jié)束符,從題目中可以看出數(shù)組p和q都有3個(gè)字符,所以長(zhǎng)度均為3。
57.D解析:在計(jì)算由&&或‖組成的邏輯表達(dá)式時(shí)一定要注意“短路”現(xiàn)象:&&是邏輯與,要兩邊的運(yùn)算分量同時(shí)為真的時(shí)候表達(dá)式的值才為真,否則為假,若&&左邊的運(yùn)算分量為假的時(shí)候,無(wú)論&&右邊的運(yùn)算分量如何,整個(gè)&&表達(dá)式的結(jié)果都為假,因此C語(yǔ)言會(huì)忽略&&右邊的表達(dá)式;‖(邏輯或)也有同樣現(xiàn)象,當(dāng)‖左邊為真時(shí)將忽略右邊的表達(dá)式。本題的關(guān)鍵點(diǎn)在于邏輯表達(dá)式i++==1&&(++j)==3‖k++==3的計(jì)算。因?yàn)椤膬?yōu)先級(jí)最低,所以先計(jì)算‖左邊的于表達(dá)式i++==1&&(++j)==3,而該表達(dá)式中&&的優(yōu)先級(jí)最低,所以先計(jì)算i++==1,==的優(yōu)先級(jí)低于++,所以最先計(jì)算的表達(dá)式為i++,該表達(dá)式的值為i自增之前的值1,因此子表達(dá)式i++==1等價(jià)于1==1結(jié)果為“真”,此時(shí)的&&運(yùn)算沒(méi)有被“短路”繼續(xù)運(yùn)算右邊的(++j)==3子表達(dá)式,因?yàn)楸磉_(dá)式(++j)的值為6自增之后的值3,所以子表達(dá)式(++j)==3等價(jià)于3==3結(jié)果還是“真”?!罢妗?&“真”的結(jié)果為“真”,即‖運(yùn)算符的左邊運(yùn)算分量為“真”!注意,此時(shí)滿
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 食堂工作人員衛(wèi)生管理制度
- 宿舍內(nèi)衛(wèi)生制度
- 幼兒園三重一大財(cái)務(wù)制度
- 失地農(nóng)民保險(xiǎn)財(cái)務(wù)制度
- 衛(wèi)生院b超室工作制度
- 衛(wèi)生室近效期藥品管理制度
- 幼兒園寢室衛(wèi)生消毒制度
- 學(xué)生檢查衛(wèi)生管理制度
- 公益二類學(xué)校財(cái)務(wù)制度
- 特殊教育幼兒園財(cái)務(wù)制度
- 2026年陜西西安市高三高考一模數(shù)學(xué)試卷試題(含答案詳解)
- 勞務(wù)服務(wù)公司財(cái)務(wù)制度
- 外事工作培訓(xùn)
- 婦產(chǎn)科臨床技能:輸精管結(jié)扎護(hù)理課件
- 鎮(zhèn)海區(qū)國(guó)資系統(tǒng)招聘筆試題庫(kù)2026
- 2025至2030中國(guó)高壓套管行業(yè)調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 廣州市2026屆高一數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- AI在建筑中的應(yīng)用【演示文檔課件】
- 2026秋招:國(guó)家電投面試題及答案
- 《2025年CSCO前列腺癌診療指南》更新要點(diǎn)解讀
- 2025北京市體育局所屬事業(yè)單位招聘100人筆試參考題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論