![2021-2022年陜西省西安市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁](http://file4.renrendoc.com/view/7cfaef53889547fd01b171d2ace294e6/7cfaef53889547fd01b171d2ace294e61.gif)
![2021-2022年陜西省西安市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁](http://file4.renrendoc.com/view/7cfaef53889547fd01b171d2ace294e6/7cfaef53889547fd01b171d2ace294e62.gif)
![2021-2022年陜西省西安市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁](http://file4.renrendoc.com/view/7cfaef53889547fd01b171d2ace294e6/7cfaef53889547fd01b171d2ace294e63.gif)
![2021-2022年陜西省西安市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁](http://file4.renrendoc.com/view/7cfaef53889547fd01b171d2ace294e6/7cfaef53889547fd01b171d2ace294e64.gif)
![2021-2022年陜西省西安市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁](http://file4.renrendoc.com/view/7cfaef53889547fd01b171d2ace294e6/7cfaef53889547fd01b171d2ace294e65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年陜西省西安市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
2.計算機(jī)能夠直接識別和執(zhí)行的語言是
A.匯編語言B.自然語言C.機(jī)器語言D.高級語言
3.下列字符串是標(biāo)識符的是()。
A.aaB.a-classC.intD.LINE1
4.有以下程序,其中函數(shù)f的功能是將多個字符串按字典順序排序:#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]));}程序運行后的輸出結(jié)果是______。A.2B.3C.6D.4
5.以下選項中非法的字符常量是A.A.'\101'
B.'\65'
C.”\xff'
D.'\019'
6.連通圖G中有n個頂點,G的生成樹是()連通子圖。
A.包含G的所有頂點B.包含G的所有邊C.不包含G的所有頂點D.包含G的所有頂點和所有邊
7.下列敘述中錯誤的是()。
A.C語言程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行過程中進(jìn)行的
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.“#defmeMAX”是合法的宏定義命令行
D.在程序中,凡是以“#”開始的語句行都是預(yù)處理命令行
8.
9.若有說明:inta[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是
A.2B.3C.4D.無確定值
10.設(shè)有定義:floata=2,b=4,h=3;以下c語言表達(dá)式中與代數(shù)式(a+B)h計算結(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++));程序運行后的輸出結(jié)果是()。
A.15B.12C.16D.20
12.以下敘述中正確的是()。
A.C語言比其他語言高級
B.C語言可以不用編譯就被計算機(jī)識別并執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式
D.C語言出現(xiàn)最晚,具有其他語言的一切優(yōu)點
13.fseek函數(shù)的正確調(diào)用形式是()。
A.fseek(文件指針,起始點,位移量)
B.fseek(文件指針,位移量,起始點)
C.fseek(位移量,起始點,文件指針)
D.fseek(起始點,位移量,文件指針)
14.C語言中標(biāo)準(zhǔn)庫函數(shù)fputs(str,fp)的功能是()。
A.從str指向的文件中讀一個字符串存入fp指向的內(nèi)存
B.把str所指的字符串輸出到fp所指的文件中
C.從fp指向的文件中讀一個字符串存入str指向的內(nèi)存
D.把fp指向的內(nèi)存中的一個字符串輸出到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");}程序運行后的輸出結(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ōu)先級最低的算符是()。
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);}程序運行后的輸出結(jié)果是()。
A.0B.4C.1D.2
二、2.填空題(20題)21.以下程序的功能是從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串。請?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ù),目的在于將對象的使用者和對象的設(shè)計者分開。
23.設(shè)有以下程序,為使之正確運行,請在橫線中填入應(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)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(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.以下程序運行后的輸出結(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整除且個位數(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é)點有18個,則該二叉樹中有______個葉子結(jié)點。
32.若輸入5、9,以下程序的運行結(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ī)中網(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.實現(xiàn)程序可將磁盤中的一個文件復(fù)制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dā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á)式可計算:1+|a|的值,請?zhí)羁?。a>=0?[6]:[7]
37.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
38.若按功能劃分,軟件測試的方法通常分為白盒測試方法和【】測試方法。
39.排序是計算機(jī)程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、【】和選擇排序等。
40.下列程序運行后的輸出結(jié)果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
三、1.選擇題(20題)41.算法的時間復(fù)雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數(shù)D.算法程序中的指令條數(shù)
42.有三個關(guān)系R、s和T如下:
由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
43.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
44.對以下說明語句的正確理解是inta[10]={6,7,8,9,10};
A.將5個初值依次賦給a[1]至a[5]
B.將5個初值依次賦給a[0]至a[4]
C.將5個初值依次賦給a[6]至a[10]
D.因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確
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.下列程序語句中,不正確的是______。
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.若有說明: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.以下選項中可作為C語言合法整數(shù)的是A.10110BB.386C.0XffaD.x2a2
49.若有以下說明和定義uniondt{inta;charb;doublec;}data;以下敘述中錯誤的是
A.data的每個成員起始地址都相同
B.變量data所占內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等
C.程序段:data.a=5;printf(“%I'm”,data.C);輸出結(jié)果為5.000000
D.data可以作為函數(shù)的實參
50.有以下程序main(){union{unsignedintn;unsignedcharc;}ul;u1.C='A';pfintf("%c\n",u1.n);}執(zhí)行后輸出結(jié)果是
A.產(chǎn)生語法錯B.隨機(jī)值C.AD.65
51.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖牵ǎ?/p>
A.多態(tài)性B.標(biāo)識惟一性C.封裝性D.耦合性
52.若有如下程序:main(){intm=-1;printf("%d,%u,%0,%x",m,m,m,m);}則程序運行后的輸出結(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,下列正確的輸入語句是()。
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語言中的文本文件以ASCII碼形式存儲數(shù)據(jù)
B.C語言中對二進(jìn)制文件的訪問速度比文本文件快
C.C語言中,隨機(jī)讀寫方式不適用于文本文件
D.C語言中,順序讀寫方式不適用于二進(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ù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3
B.由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3
C.由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但p數(shù)組中字符串長度為3
D.由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定
57.有以下程序main(){inti=1,j=2,k=3;if(i++==l&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);程序運行后的輸出結(jié)果是
A.123B.234C.223D.233
58.下列敘述中錯誤的是()。
A.一個C語言程序只能實現(xiàn)一種算法
B.c程序可以由多個程序文件組成
C.C程序可以由一個或多個函數(shù)組成
D.一個c函數(shù)可以單獨作為一個C程序文件存在
59.執(zhí)行下列程序時輸入: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í)行程序時,輸出的結(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語言賦值語句是()。
A.X…Y5;B.X=n%2.5;C.X+n=i;D.x=5=4+1:
64.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A.軟件集成測試計劃B.軟件詳細(xì)設(shè)計說明書C.用戶手冊D.軟件需求規(guī)格說明書
65.若變量已正確定義,在if(W)塒ntf(”%d\n”,k);中,以下不可替代w的是()。
A.a<>b+CB.ch=getcharC.a==b+CD.a++
66.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護(hù)過程
67.
68.
若有以下程序段,w和k都是整型變量:
┇
w=k:
LB:if(w==0)gotoLE;
W--:
printf("*")
gotoLB;
LE;
┇
則不能與上面程序段等價的循環(huán)語句是()。
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)存儲類型說明符的變量應(yīng)該是________存儲類型。
A.內(nèi)部靜態(tài)B.外部C.自動D.寄存器
70.有三個關(guān)系R、S和t如下:由關(guān)系R和s通過運算得到關(guān)系T,則所使用的運算為()。
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.下列選項中屬于結(jié)構(gòu)化程序設(shè)計原則的是()。
A.可封裝
B.多態(tài)性
C.自下而上
D.逐步求精
75.(45)信息隱蔽的概念與下述哪一種概念直接相關(guān)()
A.軟件結(jié)構(gòu)定義
B.模塊獨立性
C.模塊類型劃分
D.模擬耦合度
76.
運行下列程序時,若輸入的數(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.以下敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實參的值
D.當(dāng)在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
78.若已定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[1]地址的表達(dá)式為()。
A.p+1B.a+1C.a++D.++p
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個整數(shù)m是否是素數(shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main)函數(shù),不得增行或刪行,也不得,t更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中,請編寫函數(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中。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填人所編寫的若干語句。
試題程序:
參考答案
1.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
2.C
3.A
\nC語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達(dá)整型變量類型的標(biāo)識符,它不能用做變量名和函數(shù)名。
\n
4.D解析:字符串比較函數(shù)“strcmp(char*s1,char*s2)”的比較規(guī)則是對兩個字符串自左至右逐個字符相比(按ASCII碼值大小比較),直到出現(xiàn)不同的字符或遇到到"\\0"為止。如果全部相同,則認(rèn)為相等:若出現(xiàn)不相同的字符,則以第一個不相同的字符的比較結(jié)果為準(zhǔn)。當(dāng)s1<s2,返回值<0;當(dāng)s1=s2時,返回值二0:當(dāng)s1>s2時,返回值>0。故本題經(jīng)過排序后,得到第二個字符串是“abbd”,所以輸出結(jié)果是4。
5.D【答案】D
【知識點】字符常量的考察
【解析】在C語言中要求八進(jìn)制字符常量的表示為\\ddd形式,但是八進(jìn)制中只有0~7,7個數(shù)字,沒有9這個數(shù)字,所以選擇D。
6.A
7.A預(yù)處理是在程序編譯之前進(jìn)行的,所以A選項錯誤。故本題答案為A選項。
8.A
9.B解析:本題考查二維數(shù)組的定義方式。第一維的大小由以下方法判斷:①當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大??;2)當(dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,則第一維的劃、:所得的商數(shù)+1。
10.B解析:選項B中由于1和2都是整型,其1/2的運算結(jié)果為0,故整個表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的討算結(jié)果不相符,所以,4個選項中選項B符合題意。
11.B#define命令是C語言中的一個宏定義命令,標(biāo)識符一般使用大寫,用標(biāo)識符定義一個:字符串,該標(biāo)識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進(jìn)行其他操作,僅僅只是替換標(biāo)識符。后綴自增運算a++表示先運算,后自加。意思是遇到a++了,先把當(dāng)前的a的值拿來參加運算,后面再自加。SUB(a++,b++)→(a++)*(b++)=3*4。故本題答案為B選項。
12.C解析:計算機(jī)語言分為低級語言和高級語言,C語言屬于高級語言,但并非比其他語言高級,選項A)錯誤;除了機(jī)器語言外,其他各種語言都必須編譯成能被計算機(jī)識別的機(jī)器代碼才能執(zhí)行,選項B)錯誤;C語言出現(xiàn)于1972年至1973年,并不是出現(xiàn)最晚的語言,選項D)錯誤。
13.B解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點)
“起始點”用0,1或2代替,0代表“文件開始”,1為“當(dāng)前位置”,2為“文件末尾”。
“位移量”指以“起始點”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字末尾加一個字母L表示long型。
14.B函數(shù)fputs(str,fp)的功能是把str所指的字符串輸出到fp所指的文件中。故本題答案為B選項。
15.A
16.B
17.C由題目的語句P=&a[1]可知,P指向a數(shù)組中下標(biāo)為1的元素“4”,又因為P為指針變量,所以P[x]與*(p+x)等價,因而在for循環(huán)語句中,第一次循環(huán)P[1]指向a數(shù)組中下標(biāo)為2的元素“6”,第二次循環(huán)p[2]指向a數(shù)組中下標(biāo)為3的元素“8”,所以y=6+8=14,因而選項C為正確答案。
18.C即輸出x[0][2]x[l][1]x[2][0]分別為357。
19.AC語言中規(guī)定運算符的優(yōu)先順序:一元算術(shù)運算符一>二元算術(shù)運算符一>關(guān)系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關(guān)系運算符,D項為一元運算符。因此最低的是A項。
20.D第1個if語句是單獨的一條語句,所以執(zhí)行完第1個if語句后,r的值仍為初值0。第2個if語句與后續(xù)的兩個elseif都是嵌套的,所以只會執(zhí)行其中的一個語句,即“if(b==2)r=2;”這條語句。故本題答案為D選項。
21.\0'++
22.封裝封裝解析:面向?qū)ο蠹夹g(shù)中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設(shè)計者分開。
23.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲分類的概念。如果沒有特別說明,函數(shù)的存儲范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來。
24.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
25.1212解析:本題簽考查如何用指針引用數(shù)組元素。分析程序,首先定義了一個指向數(shù)組a的指針p,p指向數(shù)組的首地址,通過p++,將p指向a[1],p+2是將指針后移2位指向a[3],*(p+2)即是取a[3)的值12。
26.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用??芍h(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。
27.3535解析:函數(shù)swap(int*a,int*b)的功能是實現(xiàn)*a和*b中兩個數(shù)據(jù)的交換,在主函數(shù)中調(diào)用swap(p,q)后,參形指針變量a和b分別指向i和j,在swap(int*a,int*b)執(zhí)行完后,指針變量a和b分別指向j和i,而指針變量p,q所指向變量的值沒有發(fā)生變化,所以輸出結(jié)果為35。
28.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數(shù)中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在if后面括號內(nèi)的條件表達(dá)式中,條件“x==y”即“10==20”不成立,則不執(zhí)行其后的語句“t=x”,然后退出if語句,順序執(zhí)行語句X=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x,y的值為20和0。
29.i<10i<10解析:分析程序,當(dāng)(i=0,1,2,…)時,“j=i*10+9”語句的運行結(jié)果是(9,39,69,99)個位數(shù)為9的所有整數(shù);題中要求是100以內(nèi)的整數(shù),所以i<10;“if(j%3!=0)continue;”語句的功能是當(dāng)條件不能被3整除時,繼續(xù)循環(huán)不執(zhí)行操作,直到能被3整除時輸出該數(shù),即輸出的數(shù)滿足條件100以內(nèi)能被3整除且個位數(shù)為9。
30.HelloHello解析:字符串中,數(shù)值0或符號'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個字符就是結(jié)束標(biāo)志。因此,只輸出前五個字符,即Hello。
31.1919解析:二叉樹具有如下性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。根據(jù)題意,度為2的節(jié)點為18個,那么,葉子結(jié)點就應(yīng)當(dāng)是19個。
32.59
33.網(wǎng)際協(xié)議網(wǎng)際協(xié)議
34.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
35.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
36.
37.存儲結(jié)構(gòu)
38.黑盒軟件測試的方法有三種:動態(tài)測試、靜態(tài)測試和正確性證明。設(shè)計測試實例的方法一般有兩類:黑盒測試法和白盒測試法。在使用黑盒法設(shè)計測試實例時,測試人員將程序看成一個“黑盒”,即不關(guān)心程序內(nèi)部是如何實現(xiàn)的,只是檢查程序是否符合它的“功能說明”,所以使用黑盒法設(shè)計的測試用例完全是根據(jù)程序的功能說明來設(shè)計的。
39.交換排序交換排序解析:常見的排序方法有插入排序(包括簡單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡單選擇排序和堆排序等)。注意:常見的排序方法及其作用機(jī)制和區(qū)別。
40.HOWHOW解析:在scanf()函數(shù)中,使用空格作為分隔符,如果輸入含有空格的字符中,則不能使用scanf()數(shù),所以本題中輸入空格就返回了'\\0\\,s數(shù)組也就確定了,后面的輸入就不再讀入數(shù)組s中。
41.C解析:算法的時間復(fù)雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復(fù)雜度時,應(yīng)該與編寫算法程序所使用的程序設(shè)計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關(guān)。選項A錯誤,因為同一算法程序在運行速度不同的計算機(jī)上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設(shè)計語言以及程序員的水平有關(guān),同一個算法,用不同的程序設(shè)計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據(jù)一個算法所編制出的程序之中,其指令條數(shù)往往與程序設(shè)計語言以及程序員的水平有關(guān),不能用算法程序中的指令條數(shù)來度量算法的時間復(fù)雜度。所以,本題正確答案為C。
42.D關(guān)系R與s經(jīng)交運算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
43.CC?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化編程方法。
44.B解析:本題中,表達(dá)式將5個初值分別賦給a[0]至a[4],系統(tǒng)自動給后面的元素a[5]至a[9]賦0。
45.A解析:本題考核的知識點是數(shù)組名作為函數(shù)參數(shù)的應(yīng)用.在malii()函數(shù)中定義了一個變量x,以及一個有9個元素的數(shù)組a,并且每個元素分別賦初值為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語句“s=s+b[3]”,br3J的值就是a[3]的值4,故s的值變?yōu)?;第二次,i值為5,相當(dāng)于執(zhí)行了語句“s=s+b[5];”,b[5]的值6,故s的值變?yōu)?0。把s作為函數(shù)值返回并賦值給x。所以,4個選項中A為所選。
46.B
47.D解析:“&”是求址運算符,“*”是指針變量說明符。選項A),B)應(yīng)改為scanf('%d',p);選項C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,這樣做很危險,建議不使用。
48.C解析:本題考核的知識點是整數(shù)及常數(shù)的表示方法。在C語言中,整數(shù)常量可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制來表示,選項A為二進(jìn)制表示,故選項A不正確;選項B是八進(jìn)制表示法,但在八進(jìn)制數(shù)中,各個位數(shù)只能為數(shù)字。到7中的一個,而在選項B中,有一個數(shù)字8,故選項B不正確;選項C為十六進(jìn)制表示法正確:選項D中也為十六進(jìn)制表示法,但十六進(jìn)制數(shù)以O(shè)x開頭,故選項D不正確,所以,4個選項中選項c符合題意。
49.C解析:本題考查的共用體的概念。共用體變量中的所有成員共享一段公共存儲區(qū),所以共用體變量所占內(nèi)存字節(jié)數(shù)與其成員中占字節(jié)數(shù)最多的那個成員相等.本題定義的共用體中成員C所占的內(nèi)存最多,因此選項B是正確的。由于共用體變量中的所有成員共享存儲空間,因此變量中的所有成員的首地址相同,選項A是正確的。同結(jié)構(gòu)體變量一樣,共用體類型的變量可以作為實參進(jìn)行傳遞,也可以傳送共用體變量的地址,選項D也是正確的。在內(nèi)存中,實數(shù)與整數(shù)的存放形式完全不一樣,共用體的成員共用的是同一塊內(nèi)存,而不是同一個數(shù)值,因此選項C是錯誤的。
50.C解析:在定義共用體的同時,定義了一個共用體型變量u1,共占兩個字節(jié),有兩個成員n和c,兩個成員的首地址是相同的。因此給u1,c賦一個“A”,其實就是給無符號整型成員u1.n的低字節(jié)賦一個“A”,輸出u1,n的時候是以字符型的形式輸出,只輸出它的低地址的一個字節(jié),因此為“A”。
51.DD)【解析】面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:標(biāo)識惟一性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性好。
52.A
53.B解析:函數(shù)scan()的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符:“輸入項地址表”是要輸入的變量的地址。若在格式符中插入了其他字符,則在輸入時要求按一一對應(yīng)的位置原樣輸入這些字符,其中的逗號也必須輸入。
54.D解析:在C語言中文本文件是以ASCII碼形式存放的,每個字符占一個字節(jié)。由于數(shù)據(jù)在計算機(jī)中是以二進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCII碼轉(zhuǎn)換成二進(jìn)制,因此速度較快。在文本文件葉,,數(shù)據(jù)以ASCII碼形式存放,用戶很難判定一個數(shù)據(jù)到底占幾個字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以順序讀寫。故D選項為所選。
55.C解析:指針中存放的是變量的地址,指針也可以進(jìn)行加減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中p+6指的是將指針向后移動了6個存儲單元,指向a[6],存放的是a[6]的地址。
56.A解析:在給p和q數(shù)組賦初值時,系統(tǒng)會自動添加字符串結(jié)束符,從題目中可以看出數(shù)組p和q都有3個字符,所以長度均為3。
57.D解析:在計算由&&或‖組成的邏輯表達(dá)式時一定要注意“短路”現(xiàn)象:&&是邏輯與,要兩邊的運算分量同時為真的時候表達(dá)式的值才為真,否則為假,若&&左邊的運算分量為假的時候,無論&&右邊的運算分量如何,整個&&表達(dá)式的結(jié)果都為假,因此C語言會忽略&&右邊的表達(dá)式;‖(邏輯或)也有同樣現(xiàn)象,當(dāng)‖左邊為真時將忽略右邊的表達(dá)式。本題的關(guān)鍵點在于邏輯表達(dá)式i++==1&&(++j)==3‖k++==3的計算。因為‖的優(yōu)先級最低,所以先計算‖左邊的于表達(dá)式i++==1&&(++j)==3,而該表達(dá)式中&&的優(yōu)先級最低,所以先計算i++==1,==的優(yōu)先級低于++,所以最先計算的表達(dá)式為i++,該表達(dá)式的值為i自增之前的值1,因此子表達(dá)式i++==1等價于1==1結(jié)果為“真”,此時的&&運算沒有被“短路”繼續(xù)運算右邊的(++j)==3子表達(dá)式,因為表達(dá)式(++j)的值為6自增之后的值3,所以子表達(dá)式(++j)==3等價于3==3結(jié)果還是“真”。“真”&&“真”的結(jié)果為“真”,即‖運算符的左邊運算分量為“真”!注意,此時滿
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度果樹苗木綠色種植與環(huán)保推廣合同
- 2025年度航空設(shè)備進(jìn)出口合同范本
- 2025年國際貨物出口運輸成本控制合同
- 2025年土地承包經(jīng)營權(quán)評估合同樣本4篇
- 二零二五年度廠區(qū)綠化改造與景觀提升合同3篇
- 2025年度婚介服務(wù)合同(婚戀教育輔導(dǎo)版)
- 2025年度合法融資租賃合同范本(附稅務(wù)說明)
- 2025年度枸杞種植基地與農(nóng)產(chǎn)品電商平臺廣告投放合作合同樣本
- 2025年度過世父母房產(chǎn)繼承分配合同
- 二零二五年度拆除工程施工現(xiàn)場安全監(jiān)督合同4篇
- 旅行社脫團(tuán)安全協(xié)議書范文模板
- 期中測試卷-2024-2025學(xué)年統(tǒng)編版語文五年級上冊
- 新教材人教版高中物理選擇性必修第三冊全冊各章節(jié)知識點考點
- CJT 354-2010 城市軌道交通車輛空調(diào)、采暖及通風(fēng)裝置技術(shù)條件
- 暑假作業(yè) 11 高二英語語法填空20篇(原卷版)-【暑假分層作業(yè)】2024年高二英語暑假培優(yōu)練(人教版2019)
- 2024年江西省南昌市南昌縣中考一模數(shù)學(xué)試題(含解析)
- 繪本的分鏡設(shè)計-分鏡的編排
- 查干淖爾一號井環(huán)評
- 體檢中心分析報告
- 人教版初中英語七八九全部單詞(打印版)
- 最高人民法院婚姻法司法解釋(二)的理解與適用
評論
0/150
提交評論