版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年陜西省渭南市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下關于typedef的敘述錯誤的是()。A.用tyFedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通常可以增加程序的可讀性
2.
3.依次讀入數據元素序列{a,b,c,d,e,f,g}進棧,元素進?;虺鰲m樞蚴俏粗模铝行蛄兄?,不可能成為棧空時彈出的元素構成序列的有()
A.{d,e,c,f,b,g,a}
B.{f,e,g,d,a,c,b}
C.{e,f,d,g,c,b,a}
D.{c,d,b,e,f,a,g}
4.第
3
題
已知:intc[3][4];則對數組元素引用正確的是
A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達都錯誤
5.設變量已正確定義并賦值,下列表達式中正確的是()。
A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
6.有以下程序段:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下選項中表達式的值為11的是()。
A.*pt->yB.pt->xC.++pt->xD.(pt++)->x
7.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4
8.
9.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運行時輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
10.用二進制來編碼字符串“abcdabaa”,需要能夠根據編碼,解碼回原來的字符串,最少需要()長的二進制字符串
A.12B.14C.18D.24
11.數據表A中有10000個元素,如果僅要求求出其中最大的10個元素,則采用()最節(jié)省時間。
A.堆排序B.希爾排序C.快速排序D.希爾排序
12.計算機算法指的是()。
A.計算方法B.排序方法C.解決問題的有限運算序列D.調度方法
13.下列說法正確的是()。
A.在C語言中,可以使用動態(tài)內存分配技術定義元素個數可變的數組
B.在c語言中,數組元素的個數可以不確定,允許隨機變動
C.在C語言中,數組元素的數據類型可以不一致
D.在C語言中,定義一個數組后.就確定了它所容納的元素的個數
14.程序中對fun函數有如下說明
void*fun();
此說明的含義是:A.fun了數無返回值
B.fun函數的返回值可以是任意的數據類型
C.fun函數的返回值是無值型的指針類型
D.指針fun指向一個函數,該函數無返回值
15.有以下程序:
程序運行后的輸出結果是()。A.4B.2C.3D.1
16.若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;則與上述程序段功能等價的賦值語句是()。
A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;
17.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序將等待用戶輸入第二個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
18.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
19.
20.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結果正確
C.軟件測試的目的是盡可能多地發(fā)現程序中的錯誤
D.軟件測試的目的是使程序符合結構化原則
二、2.填空題(20題)21.設在主函數中有以下定義和函數調用語句,且fun函數為void類型,請寫出fun函數的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
22.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是【】。
structnode
{chardata;
structnode*next;}a,b
23.派生類對基類繼承控制訪問有三種。派生類可以定義其基類中不具備的【】。
24.以下程序的功能是:將輸入的正整數按逆序輸出。例如:若輸入135則輸出531。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intn,s;
printf("Enteranumber:");scanf("%d",&n);
printf("Output:");
do
{s=n%10;printf("%d",s);【】;
}while(n!=0);
printf("\n");
}
25.下列程序的輸出結果是______。
main()
{imti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
26.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數strcmp(s1,s2)g,結果是______。
27.以下主程序運行后的輸出結果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=ii;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
28.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯系屬于______的聯系。
29.以下程序運行后輸入3,abcde<回車>,則輸出結果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
30.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運行后的輸出結果是【】。
31.已知字母A的ASCⅡ碼為65。以下程序運行后的輸出結果是()。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
32.設有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程
序的輸出結果是______。
33.有以下程序段,且變量已正確定義和賦值
for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請?zhí)羁?使下面程序段的功能與之完全相同
s=1.0;k=1;
while(【】){s=s+1.0/(k*(k+1));【】;}
printf("s=%f\n\n",s);
34.以下程序運行后的輸出結果是______。
#include<strlng.h>
main()
{
charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
35.數據的邏輯結構有線性結構和______兩大類。
36.【】是一種信息隱蔽技術,目的在于將對象的使用者和對象的設計者分開。
37.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
38.下述函數用于統(tǒng)計一行字符中的單詞個數,單詞之間用空格分隔。
word_num(str)
charstr[];
{inti,num=0,word=0;
fo(i=0;str[i]!=【】;i++)
if(【】=='')word=0;
elseif(word==0)
{
word=1;
【】;
}
return(num);
}
39.在結構化分析使用的數據流圖(DFD)中,利用【】對其中的圖形元素進行確切解釋。
40.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
三、1.選擇題(20題)41.有如下程序段:inta=14,b=15,x,charc='A';x=(a&&B)&&(c<'B');執(zhí)行該程序段后,x的值為()
A.1B.0C.FALSED.TRUE
42.下列選項中錯誤的說明語句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
43.有以下程序main(){charp[]={'a','b','c},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運行后輸出結果是
A.44B.33C.34D.43
44.有以下函數定義:intfun(doublea,doubleB){returna*b;}若以下選項中所用變量都已正確定義并賦值,錯誤的函數調用是()。
A.if(fun(x,y)){……}
B.z=fun(fun(x,y),fun(x,y));
C.z=fun(fun(x,y)x,y);
D.fun(x,y);
45.下列的程序用來輸出兩個字符串前7個字符中對應相等的字符及其位置號,程序空白處應該填寫的是()。
#include<stdio.h>
main()
{chars1[]="chinese",s2[]="japnese";
inti;
for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++)
if(s1[i]==s2[i]&&i<7)
______,
}
A.putchar(s2[i]);putchar(i)
B.puts(s1[i],i)
C.printf("%c%d\n",s2[i],i)
D.printf("%c",s1[i]);printf("%d\n",i)
46.以下敘述中錯誤的是
A.gets函數用于從終端讀入字符串
B.getehar函數用于從磁盤文件讀入字符
C.fputs函數用于把字符串輸出到文件
D.fwrite函數用于以二進制形式輸出數據到文件
47.若要求從鍵盤讀入含有空格字符的字符串,應使用函數A.getc()B.gets()C.getchar()D.scanf()
48.若有下面的程序段:chars[]="china";char*p;p=s;則下列敘述正確的是
A.s和p完全相同
B.數組s中的內容和指針變量p中的內容相等
C.s數組長度和p所指向的字符串長度相等
D.*p與s[0]相等
49.有以下程序#definef(x)(x'x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運行后的輸出結果是
A.64,28B.4,4C.4,3D.64,64
50.若在某函數內部有定義:inta[3][4];則數組a中各元素()。
A.可在程序的運行階段得到初值0
B.可在程序的編譯階段得到初值0
C.不能得到確定的初值
D.可在程序的編譯或運行階段得到初值0
51.有以下的程序#include<stdio.h>voidfun(char*fname,char*st){FILE*myf;inti;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){fun("test.t","newworld");fun("test.t","hello,");}程序執(zhí)行后,文件test.t中的內容是()
A.hello,B.newworldhello,C.newworldD.hello,rld
52.在C語言中,合法的字符常量是()
A.'\084'B.'\x43'C.'ab'D.'\0'
53.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.執(zhí)行算法需要的內存空間
54.假定當前盤符下有兩個如下文本文件:
文件名a1.txta2.txt
內容123#321#
則下面程序段執(zhí)行后的結果為
#include"stdio.h"
voidfc(FILE*p)
{charc;
while((c=fgetc(p))!=′#′)putchar(c);}
main()
{FILE*fp;
fp=fopen("a1.txt","r");
fc(fp);
fclose(fp);
fp=fopen("a2.txt","r");
fc(fp);
fclose(fp);
putchar('\n');}
A.123321B.123C.321D.以上答案都不正確
55.請選出以下程序的輸出結果_______。#include<stdio.h>sub(int*s,inty){staticintt=3,y=s[t];t-;}main(){inta[]={1,2,3,4},i,x=0;for(i=0;i<4;i++){sub(a,x);printf("%d",x);}printf("\n");}
A.1234B.4321C.0D.4444
56.有下列函數定義:fun(floath){printf("%f,%f\n",h,h*h);}該函數的類型是()。
A.27B.6C.25D.30
57.若定義函數int*func(),則函數func的返回值為()。
A.一個實數B.一個指向整型變量的指針C.一個指向整型函數的指針D.一個整型函數的入口地址
58.在計算機中,算法是指()。
A.查詢方法B.加工方法C.解題方案的準確而完整的描述D.排序方法
59.有下列二叉樹,對此二叉樹中序遍歷的結果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
60.若變量已正確定義,下列正確的程序段是()。
A.while(ch=getchar()=='\N')putchar(ch);
B.while((ch=getchar())=='\n')putchar(ch);
C.while((ch=getchar())!='\N')putchar(ch);
D.while((ch=getchar())!='\n')putchar(ch);
四、選擇題(20題)61.以下程序運行后的輸出結果是()。
A.2011B.99C.209D.1111
62.
63.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結果是
A.A.331
B.41
C.2
D.1
64.已知字符'A'的ASCⅡ代碼值是65,字符變量c1的直是'A',c2的值是'D'。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結果是()。
A.A.A,BB.A,68C.65,66D.65,68
65.以下數組定義中錯誤的是()。
66.
67.
68.定義無符號整數類為UInt,下面可以作為類UInt實例化值的是()。
A.-369B.369C.0.369D.整數集合11,2,3,4,51
69.有兩個關系R和T如下:
則由關系R得到關系T的操作是()。A.選擇B.投影C.交D.并
70.
71.若變量均已正確定義并賦值,以下合法的c語言賦值語句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;
72.(5)下面概念中,不屬于面向對象方法的是()
A.對象
B.繼承
C.類
D.過程調用
73.有以下程序:
#include<stdio.h>
main()
{char*s="[2]34";intk=0,a=0;
whil(s[k+1]!=\0)
{k++;
if(k%2=o){a=a+(s[k]-0+1);continue;}
a=a+(s[k]-0);
printf("k=%da=%d\n",k,a);
}
程序運行后的輸出結果是()。
A.k=6a=11B.k=3a=14C.k=4a=12D.k=5a=15
74.設x=015,則x=x^017的值是()。A.00001111B.11111101C.00000010D.11000000
75.
若變量e為char類型,能正確判斷出C為小寫字母的表達式是()。A.a<=c<=ZB.c>=a.(c<=Z)C.(a<=c)and(z>c)D.(c>=a)&&(c<=Z)
76.下面概念中,不屬于面向對象方法的是()。A.對象B.繼承C.類D.過程調用
77.
78.
79.已定義以下函數
80.
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:計算S=f(-n)+(-n+1)+…+f(O)+f(1)+(2)+…+f(n)的值。例如,當n為l0時,函數值應為22.550361。f(x)函數定義如下:請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數fun(),用來求出數組中值最大的元素在數組中的下標并將其存放在k所指向的存儲單元中。例如,輸入如下整數:876675896101301401980431451777則輸出結果為6,980。注意:部分源程序在文件prog1.c中。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.A用typedef沒有增加新類型,所以選擇A)。
2.A
3.B
4.C
5.A運算符“%”的左右兩個操作數均應為整數,所以B選項與D選項錯誤。C選項中不能將“x+z”的值賦給表達式“y*5”,所以C選項錯誤。故本題答案為A選項。
6.C解析:要計算一個復雜的表達式時,首先要弄明白表達式中所有運算符的優(yōu)先級與結合性,本題中所涉及的運算符中,->的優(yōu)先級最高,*和++的優(yōu)先級相同,但其結合性為從右至左。所以選項A等價于*pt->y)也就是pt所指向的結構體的成員指針變量y所指向的內容。從前面的程序段不難看出,pt指向結構體數組c的首地址,也就是指向它的第1個元素,在它的第1個元素中,指針變量y又被初始化為指向控型數組a的首地址,即指向數組a的第1個元素。故選項A中的表達式的值為a[0],也就是1。選項B中表達式的值就是c[0].x,即10。根據優(yōu)先級和結合性,選項C中的表達式等價于++(pt->x),由于是前綴++,所以整個表達式的值為pt->x的值加1,故為11。而選項D中,++是后綴形式,所以(pt++)的值還是pt的原值,即等于pt->x的值10。故應該選擇C。
7.C本題考查三目運算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據優(yōu)先級,先算括號內的,c小于d為真取C的值,再看a小于b為假,所以取C的值。
8.D
9.A題干中,定義一個二維字符數組v。然后通過for循環(huán),輸入4個字符串welcome、you、to、beijing,將其分別存放在v的4個元素中。數組v是存放4個字符串的二維數組;“**v”表示第1個字符串的第一個字符“w”;“*(v+1)”指向第2個字符串“you”;“v[3]+3”指向第4個字符串的第3個字符開始后的整個字符串“jing”;“*(v[2]+1)”表示第3個宇符串的第2個字符“o”。故本題答案為A選項。
10.B
11.B
12.C
13.D在C語言中,數組元素的個數是確定的,不允許隨機變動,數組定義好后,它所能容納的元素的個數也就確定了,并且同一個數組中所有元素都是同一類型。
14.D解析:返回指針的函數定義為:返回值類型,函數名(\u3000\u3000),而指向函數的指針定義為:返回值類型(*變量名)(\u3000\u3000)。本題中函數fun返回一個無類型的指針。
15.D條件表達式形式:表達式1?表達式2:表達式3。當表達式1的值為非零值時,整個表達式的值是表達式2的值;當表達式1的值為零值時,整個表達式的值是表達式3的值。題干中的表達式是嵌套的條件表達式w﹤x?w:z﹤y?z:x,等價于w﹤x?w:(z﹤y?z:x)。由于w取值為4,x取值為3,所以w﹤x的值為零值,整個表達式的值為z﹤y?z:x,z取值為1,y取值為2,所以z﹤y的值為非零值,整個表達式的值為z的值1。本題答案為D選項。
16.B解析:本題考核的知識點是for循環(huán)次數的計算.本程序中for循環(huán)的次數為c-1+1共循環(huán)了c次,而每循環(huán)一次s的值加1,所以s的值為s+c.而最開始s的值為a,故4個選項中選項B符合題意.
17.A解析:函數getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。
18.A本題考查邏輯與運算“&&”與邏輯或運算“||”。在選項A中,因為!a=0,所以關系表達式!a=1為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A正確。在選項8中,關系表達式a<b為真,表達式(a<b)&&!C為假,而表達式(a<b)&&!||1為真,所以整個表達式的值為真。選項C中,a&&b的結果為真。在選項D中,a||(b+b)&&(C-a)的結果為真。
19.B
20.C解析:關于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現的錯誤的用例;一個成功的測試是發(fā)現了至今尚未發(fā)現的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現程序中的錯誤。本題答案為C。
21.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數調用“不帶回值”,可以用“void”定義函數為“無類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數帶回任何值。當二維數組作為形參時,二維數組的第一維可以省略。
22.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應該是p->next=&b;在選項D)中,用*運算符取出結構體變量,并且保存的就是b的地址。
23.數據和操作數據和操作
24.n/=10或n=n/10n/=10或n=n/10解析:每次循環(huán)把n除以10所得的商賦給n。
25.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結果無定值.
26.-1-1解析:strcmp(s1,s2)函數的作用是:對字符數組s2和字符數組s1進行比較。如果s1<s2,則返回負數;如果s1==s2,則返回0;如果s1>s2,則返回正數。
27.132132解析:本題for循環(huán)語句的執(zhí)行過程為:
第一次循環(huán):i=9,9/10=0,執(zhí)行m++、n++得m=1、n=1、k=0;
第二次循環(huán):i=10,10/10=1,執(zhí)行k++、n++得m=1、n=2、k=1;
第三次循環(huán):i=11,11/10=1,執(zhí)行k++、n++得m=1、n=3、k=2;
即執(zhí)行完for循環(huán)后m=1、n=3、k=2。
28.1對多(或1:N)1對多(或1:N)
29.cdeabcdeab解析:本題move()函數的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數中用了一個for循環(huán)調用move()函數,共循環(huán)3次,所以數組s被循環(huán)右移了3位,故最后輸出的值為cdeab。
30.310
31.67G67G解析:根據題意,a=‘A’+‘5’-‘3’=65+2=67,b=67+4=71,71即為字母G的ASCⅡ碼值。程序要求按十進制形式輸出a,按字符形式輸出b,所以結果為67G。
32.QTHRGQTHRG解析:函數strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數值大于0;若t=s,則函數值等于0:若t<s,則函數值小于0。函數strcpy(t,s)的功能是,把字符數組s所指字符串的內容復制到字符數組t所指存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數組s所指字符串的內容復制到字符數組t所指存儲空間中,然后輸出字符數組t。
33.k<=nk++k<=n,k++解析:本題要求將一個for循環(huán)改成while循環(huán)。首先要保證循環(huán)條件相同,在for循環(huán)中,每次執(zhí)行循環(huán)之后,循環(huán)控制變量k都會加1,而while循環(huán)則沒有,故需在循環(huán)體中增加改變k數值的語句'k++;'\ue009。
34.abcbccabcbcc解析:strcpy()函數有兩個字符指針參數,功能是將第2個參數所指的字符串(包括字符串結束標志\'\\0\')復制到第1個參數所指的內存地址中.題目程序中使用?兩個for循環(huán),都是讓i從0遞增到2循環(huán)3次。第1個循環(huán)將字符數組ch中的字符串'abe'復制到;維數組x[3][4]的每1行,笫2個for循環(huán)每次輸出x[i][j]中的字符串,即三次分別輸出從x[0][0]、x[1][1]、x[2][2]開始的字符串的內容。故三次分別輸出abc、bc、c,結果為abcbcc。
35.非線性結構非線性結構
36.封裝封裝解析:面向對象技術中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術,目的在于將對象的使用者對象的和設計者分開。
37.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。
38.\0'或0或NULLstr[i]num++或num=num+1或num+=1\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或num+=1解析:觀察題目要求,可以知道以下幾點:
①for循環(huán)的結束條件應當是:str[i]已是字符串的最后—個字符;
②str[i]代表字符串str中的第i+1個字符;
③整型變量num的值是要記錄的單詞的個數。
C語言中規(guī)定字符串的最后一個字符是一個隱含的字符串結束符“\\0”,所以在題中第—個空中應填寫“\\0”;題中第二個空應填寫“str[i]”,以判斷當前位置的字符是否為空格;題中第三個空中應當填寫“num++”,通過變量num的加1累加得到字符串中的單詞個數。
39.數據字典或DD數據字典或DD解析:數據流圖用來對系統(tǒng)的功能需求進行建模,它可以用少數幾種符號綜合地反映出信息在系統(tǒng)中的流動、處理和存儲情況。數據詞典(DataDictionary,DD)用于對數據流圖中出現的所有成分給出定義,它使數據流圖上的數據流名字、加工名字和數據存儲名字具有確切的解釋。
40.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結果顯然為0。
41.A解析:a=14,b=15,第一個&&兩側均為非零值。c='A',表達式c<'B'的值為真即1,第二個&&兩側也均為非零值。表達式(a&&b)&&(c<'B')的值為1,賦值給變量x。
42.D解析:通過賦初值的方式給一維數組賦字符串,可以用給一般數組賦初值的相同方式給一維字符數組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結尾處加上一個字符'\\0'作為串的結束標記。
43.C解析:本題考查的是字符數組的初始化。字符數組即可以用{初始化列裹}來初始化,也可以用一個字符串常量來初始化。但字符串常量系統(tǒng)會自動為其添加結束標記'\\0',故比實際長度要多一位,所以本題輸出為34,應該選擇C。
44.C
45.C解析:putchar(s)的功能是把字符s輸出到標準輸出設備:puts(s1)是把s1指向的字符串輸出到標準輸出設備。
46.B
47.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數不能輸入空格;getehar(\u3000)函數用于輸入字符,其調用形式為:ch=getelaar(\u3000),getehar(\u3000)函數從終端讀入一個字符作為函數值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數組名、字符數組元素的地址或字符指針變量。9ets函數用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數的調用形式為:ch=getc(pf)其中pf是文件指針。函數的功能是從pf指定的文件中讀入一個字符,并把它作為函數值返回。
48.D解析:字符型指針變量p中存放的是'china'的首地址,所以選項A)和B)錯誤。e數組長度為6,而p所指向的字符串長度為5,二者不相等,排除選項C)。
49.C解析:本題考查的是帶參數的宏。宏替換與函數調用不同,前者是字面上的,在編譯期間完成,后者是內容上的,在運行期間才進行。題目中第1條要替換的語句i1=(8)/f(4);展開后是i1=(8*)/(4*4);結果使i1=4.而第2條語句i2=f(4+4)/f(2+2);展開后為i2=(4+4*4+4)/(2+2*2+2);結果使i2=24/8=3。故應該選擇C。
50.C解析:在函數內部定義的存儲類型為auto的變量或數組,如果沒有進行初始化,就不能得到確定值。
51.A
52.B
53.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內存空間。
54.A解析:本題的功能是順序的讀兩個文本文件,依次輸出。當打開文件時出現錯誤,fopen函數將返回NULL。
55.C解析:x作為函數sub()的實參時,函數對x值的改變沒有返回主函數,并不能使得x的值變化,所以在打印時,x的值是始終不變的,即為0。
56.A解析:本題考查函數調用時的參數傳遞。函數reverse將數組b進行了逆置,此時的b[10]={10,9,8,7,6,5,4,3,2,1},后面for語句的功能是將b中的前3個數累加,將結果放在s中,最后將s輸出,結果s=10+9+8=27。
57.B解析:本題考考查的是指針函數。指針函數定義的基本格式為:類型說明符*函數名()。其中,“類型說明符”表示返回的指針。值所指向的數據類型。
58.CC?!窘馕觥坑嬎銠C算法是指解題方案的準確而完整的描述,它的基本特征分別是:可行性、確定性、有窮性和擁有足夠的情報。
59.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結點A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。
60.D解析:本題考查兩個知識點:①C語言用'\\n'這個字符常量表示換行;②函數getchar()的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市民宿租賃合同示范文本2篇
- 礦井急救培訓方案
- 二零二五版房屋收購與附帶家具家電合同6篇
- 路橋路面改造施工方案
- 二零二五版離婚程序指導及雙方自愿協(xié)議合同3篇
- 二零二五年度城市基礎設施建設外協(xié)合同申請與驗收辦法3篇
- 二零二五版學生校外住宿安全協(xié)議與住宿合同違約賠償合同3篇
- 二零二五年度奢侈品退換貨標準協(xié)議模板3篇
- 銀行高層裝修方案
- 二零二五年度教育機構校園裝修工程協(xié)議書2篇
- 2025年人民教育出版社有限公司招聘筆試參考題庫含答案解析
- 康復醫(yī)學治療技術(士)復習題及答案
- 《血管性血友病》課件
- 高三日語一輪復習日語助詞「に」和「を」的全部用法課件
- 執(zhí)業(yè)醫(yī)師資格考試《臨床執(zhí)業(yè)醫(yī)師》 考前 押題試卷絕密1 答案
- 社會保險課件教學課件
- 訂婚協(xié)議書手寫模板攻略
- 宇航用商業(yè)現貨(COTS)器件保證指南-編制說明
- 2024年安全員-C證考試題庫及答案(1000題)
- 《立體倉庫鋼結構貨架技術規(guī)范(征求意見稿)》
- 2024年貴州蔬菜集團有限公司招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論