




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022年甘肅省金昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.對(duì)于循環(huán)隊(duì)列()。
A.無(wú)法判斷隊(duì)列是否為空B.無(wú)法判斷隊(duì)列是否為滿C.隊(duì)列不可能滿D.以上說(shuō)法都不對(duì)
2.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
3.鏈棧與順序棧相比,比較明顯的優(yōu)點(diǎn)是()。
A.插入操作更加方便B.刪除操作更加方便C.不會(huì)出現(xiàn)下溢的情況D.不會(huì)出現(xiàn)上溢的情況
4.如果有n個(gè)節(jié)點(diǎn)用二叉樹(shù)來(lái)存儲(chǔ),那么二叉樹(shù)的最小深度為()
A.Log2(n+1)B.Log2(n)C.Log2(n-1)D.n/2
5.廣義表((a),a)的表頭是()。
A.aB.()C.(a)D.((a))
6.
7.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是
A.12B.123C.234D.345
8.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
9.下列敘述中錯(cuò)誤的是()。
A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容
C.在C語(yǔ)言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別
D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量
10.設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
11.以下說(shuō)法錯(cuò)誤的是()。
A.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序不能解決過(guò)于復(fù)雜的問(wèn)題
B.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決一些簡(jiǎn)單的問(wèn)題
C.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決遞歸問(wèn)題
D.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決數(shù)學(xué)上有解析解的問(wèn)題
12.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)??盏那闆rC.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
13.下列程序的輸出結(jié)果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
14.以下程序的輸出結(jié)果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
15.設(shè)有以下語(yǔ)句
charchl,ch2;scanf("%c%C",&chl,&ch2);
若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。
A.A和B之間用逗號(hào)間隔
B.A和B之間不能有任何間隔符
C.A和B之間可以用回車(chē)間隔
D.A和B之間用空格間隔
16.
17.若x、y、z、m均為int型變量,則執(zhí)行下面語(yǔ)句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
18.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
19.若有說(shuō)明語(yǔ)句:charc='\72'則變量c()。
A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說(shuō)明不合法,c的值不確定
20.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是()
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是______。
structNODE
{intk;
structNODE*link;
};
main()
structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q)
{p->k-++i;p++;
q->k-i++;q--;
}
q->k=i;
for(i-0;i<5;i++)
printf("%d",m[i].k);
printf("\n");
22.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
23.若有語(yǔ)句:
inti=-19,j=i%4;
printf("%d\n",j);
則輸出結(jié)果是【】。
24.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
25.下列程序的運(yùn)行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
26.下面程序的運(yùn)行結(jié)果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
27.以下函數(shù)inverse的功能是使一個(gè)字符串按逆序存放,請(qǐng)?zhí)羁铡?/p>
inverse(charstr[])
{charm;
inti,j;
for(i=0,j=strlen(str);i<strlen(str)/2;【】,j--)
{m=str[i];
str[i]=【】;
【】;
}
}
28.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
29.在E-R圖中,矩形表示【】。
30.在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
31.設(shè)y是int型,請(qǐng)寫(xiě)出y為奇數(shù)的關(guān)系表達(dá)式【】。
32.以下程序的輸出結(jié)果是()。
#include<stdio.h>
fun()
{inta=0;
a+=3;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)
fun();
printf("\n");
}
33.在深度為7的滿二叉樹(shù)中,度為2的結(jié)點(diǎn)個(gè)數(shù)為【】。
34.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
35.以下程序的運(yùn)行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
36.若有如下程序:
sub(int*y)
{while(--(*y));
printf("%d",(*y)--);}
main()
{intx=10;
sub(&x);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
37.下列的for語(yǔ)句的循環(huán)次數(shù)為_(kāi)_____。
for(x=1,y=0;(y!=19)&&(x<7);x++);
38.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}
39.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫(xiě)適當(dāng)內(nèi)容,使程序能正常運(yùn)行。
#include<stdio.h>
【】(double,double);
main()
{doublex,y;
scanf("%If%If",&x,&y);
printf("%If\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
40.設(shè)有下列程序:
#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);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車(chē)符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
三、1.選擇題(20題)41.軟件需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫(xiě)需求分析說(shuō)明書(shū)和
A.階段性報(bào)告B.需求評(píng)審C.總結(jié)D.都不正確
42.若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。
A.i*m+j-1B.i*m+jC.j*m+1D.i*m+i+1
43.定義int*swap()指的是______。
A.一個(gè)返回整型值的函數(shù)swap()
B.一個(gè)返回指向整型值指針的函數(shù)swap()
C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說(shuō)法均錯(cuò)
44.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A.A.&B.^C.||D.~
45.以下程序段的執(zhí)行結(jié)果為#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}
A.SUM=9B.SUM=12C.SUM=18D.SUM=28
46.若某二叉樹(shù)的前序遍歷訪問(wèn)順序是abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問(wèn)順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
47.若有語(yǔ)句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char為指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語(yǔ)句中的*號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
48.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
49.下列關(guān)于函數(shù)的敘述中正確的是()。A.A.每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B.每個(gè)函數(shù)都可以被單獨(dú)編譯
C.每個(gè)函數(shù)都可以單獨(dú)運(yùn)行
D.在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)
50.在int(*prt)[3];定義中,標(biāo)識(shí)符prt()。
A.定義不合法
B.是一個(gè)指針數(shù)組名,每個(gè)元素都是一個(gè)指向整型變量的指針
C.是一個(gè)指針,它指向一個(gè)具有三個(gè)元素的一維數(shù)組
D.是一個(gè)指向整型變量的指針
51.以下程序錯(cuò)誤的是()。
A.main(){intx,y,z;x=0;y=x-1;z=x+y;}
B.main(){intx,y,z;x=0,y=x+1;z=x+y;}
C.main(){intx;inty;intz;x=0,y=x+1;z=x+y;}
D.main(){intx,y,z;x=0;y=x+1;z=x+y,}
52.若有說(shuō)明:intn=2,*p=&n,*q=p;,則以下非法的賦值語(yǔ)句是
A.p=q;B.*p=*q;C.n=*q;D.p=n;
53.有以下函數(shù)定義:intmypr(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是
A.if(mypr(x,y)){……}
B.z=mypr(mypr(x,y),mypr(x,y));
C.z=mypr(mypr(x,y)x,y);
D.mypr(x,y);
54.有一個(gè)數(shù)值152,它與十六進(jìn)制數(shù)6A相等,那么該數(shù)值是()
A.二進(jìn)制數(shù)B.八進(jìn)制C.十進(jìn)制數(shù)D.四進(jìn)制數(shù)
55.若執(zhí)行下列的程序時(shí),從鍵盤(pán)上輸入1和2,則輸出結(jié)果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
56.在函數(shù)調(diào)用過(guò)程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則()。
A.稱為函數(shù)的直接遞歸調(diào)用B.稱為函數(shù)的間接遞歸調(diào)用C.稱為函數(shù)的循環(huán)調(diào)用D.C語(yǔ)言中不允許這樣的遞歸調(diào)用
57.若有定義intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)
58.下列程序的輸出結(jié)果是()main(){intx=0.5;charz=‘a(chǎn)’;printf(“%d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
59.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開(kāi)始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動(dòng)移至下一個(gè)字符位置
60.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。
A.2,1B.2,2C.2,5D.5,2
四、選擇題(20題)61.下列程序的輸出結(jié)果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
62.
63.結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是()。
A.for、while、switchB.輸入、輸出、處理C.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)D.主程序、子程序、函數(shù)
64.有以下程序#includemain{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。A.741B.963C.852D.875421
65.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭
C.每個(gè)C程序必須在開(kāi)頭包含預(yù)處理命令行:#include
D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
66.對(duì)表達(dá)式for(表達(dá)式1;;表達(dá)式3)可理解為()。
A.for(表達(dá)式1;0;表達(dá)式3)
B.for(表達(dá)式1;1;表達(dá)式3)
C.for(表達(dá)式1;表達(dá)式1;表達(dá)式3)
D.for(表達(dá)式1;表達(dá)式3;表達(dá)式3)
67.以下程序中函數(shù)f的功能是:當(dāng)na9為1時(shí),進(jìn)行由小到大排序;當(dāng)fla9為oN。進(jìn)行由大到小排序。程序運(yùn)行后的輸出結(jié)果是()
68.
69.
70.
71.已定義c為字符型常量,則下列語(yǔ)句中正確的是()。
A)c=′97′B)c="97"
C)c=97D)c="a"
72.(48)軟件調(diào)試的目的是()
A.發(fā)現(xiàn)錯(cuò)誤
B.改正錯(cuò)誤
C.改善軟件的性能
D.挖掘軟件的潛能
73.
74.下列敘述中不正確的是。
A.算法的效率不僅與問(wèn)題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)
B.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
D.算法的時(shí)間復(fù)雜度與空間復(fù)雜度不一定相關(guān)
75.關(guān)于以下程序段的描述,正確的是
x=-1;
do
{x=x*x-1;}while(!x);
A.是死循環(huán)B.循環(huán)執(zhí)行兩次
C.循環(huán)執(zhí)行一次D.有語(yǔ)法錯(cuò)誤
76.若變量c為char類型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是
A.’a’<=c<=’z’B.(c>=’a’)||(c<=’z’)
C.(’a’<=c)and(’z’>=c)D.(c>=’a’)&&(c<=’z’)
77.算法的空間復(fù)雜度是指()。
A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間
78.
若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):
inti=8,j=9;
則下列語(yǔ)句:
printf("i=%%d,j=%%d\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
79.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{intx=f;printf("%c\n",A+(x-a+1));}
A.GB.HC.ID.J
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤(pán)上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:函數(shù)返回指定成績(jī)的學(xué)生數(shù)據(jù),指定的成績(jī)?cè)谥骱瘮?shù)中輸入。若沒(méi)找到指定的成績(jī),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置-1,作為函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填人所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.D
2.A\nA?!窘馕觥款^結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問(wèn)整個(gè)鏈表,因此增加頭結(jié)點(diǎn)的目的是為了便于運(yùn)算的實(shí)現(xiàn)。
\n
3.D
4.A
5.C
6.D
7.D解析:本題考查的是二維數(shù)組元素在內(nèi)存中的排列形式。雖然二維數(shù)組成多維數(shù)組從結(jié)構(gòu)上來(lái)看不是線性的,但是在C語(yǔ)言中,這些數(shù)組元素在內(nèi)存中的排列是連續(xù)線性存放的。它們的排列規(guī)則是:第一維下標(biāo)變化最慢,最右邊的下標(biāo)變化最快.例如本題中定義的二維數(shù)組a[3][3]中9個(gè)元素在內(nèi)存中的排列順序是:a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],a[2][0],a[2][1],a[2][2]。在主函數(shù)中,首先定義了二維數(shù)組a[3][3],然后定義了一個(gè)指針p指向數(shù)組a的第1個(gè)元素a[0][0]。在第一個(gè)for循環(huán)中,依數(shù)組a在內(nèi)存中的排列順序?yàn)槠湓刭x從0~8九個(gè)值,然后用第二個(gè)for循環(huán)依次輸出a[1][0],a[1][1],a[1][2]三個(gè)元素的值。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。
8.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲(chǔ)文件(數(shù)據(jù)源)(表示處理過(guò)程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。
9.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。
10.A選項(xiàng)A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定的地址)。C選項(xiàng)錯(cuò)誤,getchar函數(shù)輸入一個(gè)字符給字符型變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無(wú)語(yǔ)法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問(wèn)題。因?yàn)樵贐選項(xiàng)和D選項(xiàng)中,字符指針沒(méi)有被賦值,是一個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存區(qū)域,這個(gè)區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個(gè)不確定的區(qū)域重新存放字符串,可能會(huì)發(fā)生無(wú)法預(yù)知的錯(cuò)誤。故本題答案為A選項(xiàng)。
11.A順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是3種基本結(jié)構(gòu),由3種基本結(jié)構(gòu)構(gòu)成的程序稱為結(jié)構(gòu)化程序,由3種基本結(jié)構(gòu)組成的算法可以解決任何復(fù)雜的問(wèn)題,選項(xiàng)A錯(cuò)誤。本題答案為A選項(xiàng)。
12.A
13.C解析:本題考查ifelse語(yǔ)句。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復(fù)合語(yǔ)句,得c=a*b=20,b、a的值不變。
14.B
15.B\nscanf輸入函數(shù)中,格式控制J必須嚴(yán)格按照函數(shù)中的要求進(jìn)行輸入,在scanf('%c%c',&chl,&ch2)的格式控制語(yǔ)句中沒(méi)有任何字符進(jìn)行間隔,所以在輸入時(shí)也不能使用任何字符進(jìn)行間隔,所以答案選擇B。
\n
16.D
17.A解析:?:運(yùn)算符首先執(zhí)行?之前的表達(dá)式,如果表達(dá)式的值為真,則返回?和:之間的表達(dá)式的值,否則返回:之后的表達(dá)式的值。本題中m比x和y都要小,所以,3個(gè)表達(dá)式都沒(méi)有改變m的值,故應(yīng)該選擇A。
18.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個(gè)指針數(shù)組char*p[2]后,程序中第一個(gè)循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個(gè)指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對(duì)應(yīng)關(guān)系,以后對(duì)二維數(shù)組ch的某個(gè)元素的引用就有兩種等價(jià)的形式:ch[i][j]或p[i][j]。②對(duì)二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串“693
19.A解析:C語(yǔ)言的字符型常量中,允許用一種特殊形式的字符常量,就是以一個(gè)“\\”開(kāi)頭的字符。其中,“\\ddd”表示用ASCII碼(八進(jìn)制數(shù))表示一個(gè)字符,本題中的charc='\\72'H口表示占一個(gè)字符的變量c的ASCII碼值。
20.D解析:通常,引用一個(gè)數(shù)組元素可以用下標(biāo)法,如a[P-a]形式,或指針?lè)?,?(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標(biāo)是從0開(kāi)始的。
21.1343113431解析:本題看似考查鏈表的知識(shí),其實(shí)只是考查了結(jié)構(gòu)體數(shù)組。程序首先定義了一個(gè)結(jié)構(gòu)體NODE,在主函數(shù)中聲明了一個(gè)該結(jié)構(gòu)體的數(shù)組m[5]和兩個(gè)結(jié)構(gòu)體指針p和q,并分別初始化p指向m(指向數(shù)組的第一個(gè)元素);q指向m+4(指向數(shù)組的最后一個(gè)元素)。接下來(lái)定義并初始化一個(gè)整型變量i為0。然后用一個(gè)while循環(huán)。在p和q不相等的時(shí)候執(zhí)行循環(huán)體:讓p所指結(jié)構(gòu)體的成員k等于++i的值,然后讓p指向下一個(gè)結(jié)構(gòu)體;讓q所指結(jié)構(gòu)體的成員k等于i++的值,然后讓q指向前一個(gè)結(jié)構(gòu)體。i從0開(kāi)始交替調(diào)用++i和i++,兩個(gè)表達(dá)式的值依次分別為1和1、3和3……。所以當(dāng)p叫循環(huán)結(jié)束時(shí),實(shí)際循環(huán)了兩次,p和q都指向m數(shù)組的中間位置m[2],i自增了4次,所以q->k=i;就是讓m[2]k=4。所以程序最后輸出為:13431。
22.概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)概念設(shè)計(jì)階段(數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段)
23.-3-3解析:%運(yùn)算符是求兩個(gè)數(shù)相除的余數(shù),其結(jié)果與被除數(shù)的符號(hào)一致,本題中“-19%4”的值為“-3”。
24.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進(jìn)行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
25.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。運(yùn)算過(guò)程為:t=POW(x+y)=(2+3)*(2+3)=25。
26.3535解析:在主函數(shù)中通過(guò)定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向7實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒(méi)有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來(lái)的值。
27.i++或++istr[j-1]str[j-1]=mi++或++i\r\nstr[j-1]\r\nstr[j-1]=m解析:字符中逆序存放的算法是:將字符串中的第i個(gè)字符和第strlen(str)-i個(gè)字符交換。然后交換字符串中第i+1個(gè)字符和第(strlen(str)-i)-1個(gè)字符,故循環(huán)變量i的值應(yīng)改變,且步長(zhǎng)為1,所以[18]處應(yīng)填i++;讀程序可知,循環(huán)中通過(guò)中間變量m交換字符串中的第i個(gè)字符和第strlen(str)-i個(gè)字符,所以題中第一、二處應(yīng)分別填寫(xiě)str[j-1]、str[j-1]=m。
28.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個(gè)字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說(shuō)明這個(gè)字符是一個(gè)單詞的開(kāi)始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個(gè)空格需填寫(xiě)的是返回的單詞的個(gè)數(shù),即num。
29.實(shí)體實(shí)體解析:E-R模型中,有3個(gè)基本的抽象概念:實(shí)體、聯(lián)系和屬性。在E-R圖中,用矩形框表示實(shí)體,菱形框表示聯(lián)系,橢圓形框表示屬性。
30.中序中序解析:在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左了樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù):并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然光遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。
31.y%2==1y%2==1解析:由關(guān)系運(yùn)算符組成的表達(dá)式稱為關(guān)系表達(dá)式。判斷2除y的余數(shù)是否為1,即可判斷y是否為奇數(shù)。
32.33333333解析:本題考查for循環(huán),for(cc=1;cc<=4;cc++)表示循環(huán)4次,a+=3表示每次a的值增加3,但是子函數(shù)中沒(méi)有將變量a定義為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都不能保存,這樣在下一次調(diào)用子函數(shù)時(shí),a的初值仍是0,所以不管調(diào)用多少次,子函數(shù)輸出始終是3。
33.63或26-163或26-1解析:在滿二叉樹(shù)中,每層結(jié)點(diǎn)都是滿的,即每層結(jié)點(diǎn)都具有最大結(jié)點(diǎn)數(shù)。深度為k的滿二叉樹(shù),一共有2k-1個(gè)結(jié)點(diǎn),其中包括度為2的結(jié)點(diǎn)和葉子結(jié)點(diǎn)。因此,深度為7的滿二叉樹(shù),一共有27-1個(gè)結(jié)點(diǎn),即127個(gè)結(jié)點(diǎn)。根據(jù)二叉樹(shù)的另一條性質(zhì),對(duì)任意一棵二叉樹(shù),若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。設(shè)深度為7的滿二叉樹(shù)中,度為2的結(jié)點(diǎn)個(gè)數(shù)為x,則改樹(shù)中葉子結(jié)點(diǎn)的個(gè)數(shù)為x+1。則應(yīng)滿足x+(x+1)=127,解該方程得到,x的值為63。結(jié)果上述分析可知,在深度為7的滿二叉樹(shù)中,度為2的結(jié)點(diǎn)個(gè)數(shù)為63。
34.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過(guò)變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開(kāi)軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
35.#&#&解析:剛開(kāi)始時(shí),switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語(yǔ)句,表達(dá)式b<0值為0,沒(méi)有與其匹配的語(yǔ)句,返回外層,因?yàn)橥鈱記](méi)有break語(yǔ)句,順序執(zhí)行case0后面的switch語(yǔ)句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因?yàn)橥鈱記](méi)有break語(yǔ)句,順序執(zhí)行default后的語(yǔ)句,輸出&。
36.00解析:while循環(huán)的條件為即當(dāng)*y非零時(shí)執(zhí)行循環(huán),-(*y)先對(duì)*y的值減1,再使用*y的值,不再執(zhí)行while循環(huán)時(shí)最后*y的值為0,輸出函數(shù)中的(*y)--,是先使用*y的值再對(duì)*y減1,就是先輸出0。
37.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測(cè)循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿足x<7時(shí)循環(huán)6次。
38.1020010200解析:本題考查的是混合運(yùn)算。“(a/b<1)&&(a%b<1)”的運(yùn)算順序?yàn)椋豪ㄌ?hào)>算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符。其中a%b=10,a,b=0,所以a%b<1的值為0,a/b<1的值為1,故整個(gè)表達(dá)式的結(jié)果為0,所以輸出的a,b,c的值為10200。
39.doublemax或externdoublemaxdoublemax或externdoublemax解析:main函數(shù)中調(diào)用了一個(gè)max函數(shù),而max函數(shù)是在調(diào)用之后定義的,所以要求填空的內(nèi)容應(yīng)該是對(duì)函數(shù)進(jìn)行聲明的語(yǔ)句。由max函數(shù)的定義可知此函數(shù)是double型的,因此空格處應(yīng)該填doublemax或externdoublemax。
40.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來(lái)比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語(yǔ)句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語(yǔ)句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語(yǔ)句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
41.B解析:本題考查軟件需求分析的四個(gè)階段,分別為需求獲取、需求分析、編寫(xiě)需求分析說(shuō)明書(shū)和需求評(píng)審。
42.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說(shuō)明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說(shuō)明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。
43.B解析:一個(gè)函數(shù)可以帶回—個(gè)整型值、字符值、實(shí)型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號(hào)和*號(hào),由于()優(yōu)先級(jí)高于*。故它是一個(gè)返回整型指針的函數(shù)。
44.B解析:按邏輯位運(yùn)算的特定作用主要有3點(diǎn):①用按位與運(yùn)算將特定位清0或保留特定位:②用按位或運(yùn)算將特定的位置設(shè)置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。
45.B解析:本題考查帶參數(shù)的宏定義及應(yīng)用方法,這種宏不只是進(jìn)行字符串的替換,還要進(jìn)行參數(shù)的替換。
格式為:#define宏名(參數(shù)表)字符串
我們先看一個(gè)簡(jiǎn)單的帶參數(shù)的宏定義:#defineX(A,B)A*B*B并且在程序中有語(yǔ)句:y=X(4,3);經(jīng)過(guò)替換后變?yōu)閥=4*3*3;這就是帶參數(shù)的宏定義的使用方法。注意:宏是按原形替換,本題替換后為sun=1+2+3*2+3;。
46.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹(shù);②訪問(wèn)根結(jié)點(diǎn);③遍歷右子樹(shù)。前序遍歷的遞歸算法定義:①訪問(wèn)根結(jié)點(diǎn);②遍歷左子樹(shù);③遍歷右子樹(shù)。后序遍歷的遞歸算法定義:①遍歷左子樹(shù);②遍歷右子樹(shù);③訪問(wèn)根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹(shù)的結(jié)點(diǎn),e、c、h、f是右子樹(shù)的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹(shù)的根,由cefh可知,c是a右邊子樹(shù)的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹(shù)的結(jié)點(diǎn),b右邊子樹(shù)無(wú)結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹(shù)的根,g是以d為根的子樹(shù)的右結(jié)點(diǎn)。至此,a的左子樹(shù)已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹(shù)的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。
47.A解析:C語(yǔ)言中[]比*優(yōu)先級(jí)高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個(gè)元素,然后再與line前面的'*'結(jié)合,表示此數(shù)組是一個(gè)指針數(shù)組,每個(gè)數(shù)組元素都是一個(gè)基類型為char的指針變量。
48.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個(gè)指針數(shù)組char*p[2]后,程序中第一個(gè)循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個(gè)指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對(duì)應(yīng)關(guān)系,以后對(duì)二維數(shù)組ch的某個(gè)元素的引用就有兩種等價(jià)的形式:ch[i][j]或p[i][j]。②對(duì)二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串“693
49.B在C語(yǔ)言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒(méi)有從屬關(guān)系。雖然函數(shù)之間可以相互調(diào)用,但main函數(shù)不能被調(diào)用,選項(xiàng)A)錯(cuò)誤;C程序從main函數(shù)開(kāi)始執(zhí)行,當(dāng)main數(shù)執(zhí)行完畢時(shí),整個(gè)程序就結(jié)束了。C程序的執(zhí)行必須從main函數(shù)開(kāi)始,選項(xiàng)C)選項(xiàng)錯(cuò)誤;函數(shù)不能嵌套定義,選項(xiàng)D)錯(cuò)誤。
50.C解析:此題的關(guān)鍵是要分清指針數(shù)組與指向一維數(shù)組指針之間的不同,題中的說(shuō)明語(yǔ)句定義了一個(gè)指針變量prt,它指向包含三個(gè)整數(shù)元素的一維數(shù)組。要注意:*prt兩側(cè)的圓括號(hào)不能缺少,如果寫(xiě)成*ptr[3],則ptr與[3]先結(jié)合,是數(shù)組,然后再與前面的。號(hào)結(jié)合,則*ptr[3]將是一個(gè)指針數(shù)組。
51.D解析:選項(xiàng)A)、B)、C)都沒(méi)有錯(cuò)誤。選項(xiàng)D)中的最后一條語(yǔ)句是以逗號(hào)結(jié)束的,而C語(yǔ)言中不能用逗號(hào)作為一條語(yǔ)句的結(jié)束標(biāo)志,應(yīng)該用分號(hào),所以選項(xiàng)D)的程序是錯(cuò)誤的。
52.D解析:本題中首先定義了一整型變量n并賦初值為2,接著定義了一個(gè)整型指針變量p并讓它指向n,接著又定義了一指向指針的指針變量q。選項(xiàng)A中給指針變量p賦值q,故這個(gè)賦值語(yǔ)句正確。選項(xiàng)B中*p=*q就是將*q的值賦給指針變量p所指向的變量n,故這個(gè)賦值語(yǔ)句不是非法的賦值語(yǔ)句。選項(xiàng)C中是將*q的值賦給變量n,故這個(gè)表達(dá)式不是非法的賦值語(yǔ)句。選項(xiàng)D中p為一指針變量,應(yīng)該將一地址賦給它,而在此選項(xiàng)的表達(dá)式中將變量n而不是n的地址賦給它,故這個(gè)表達(dá)式不合法。
53.C解析:本題考查了函數(shù)調(diào)用的方法。選項(xiàng)C函數(shù)調(diào)用mypr(x,y)可以作為表達(dá)式再參與運(yùn)算,但是與另一個(gè)運(yùn)算數(shù)x之間沒(méi)有任何運(yùn)算符所以是錯(cuò)誤的。
54.B
55.B解析:本題考查if語(yǔ)句。scanf函數(shù)通過(guò)鍵盤(pán)讀入a、b的值,a=1,b=2。第一個(gè)if語(yǔ)句,先判斷條件,發(fā)現(xiàn)a<b條件成立,則s=b=2,s=s*s=4。
56.B解析:在C語(yǔ)言中所謂函數(shù)的遞歸是指在調(diào)用一個(gè)函數(shù)的過(guò)程中,又出現(xiàn)了直接或間接調(diào)用該函數(shù)本身,直接調(diào)用該函數(shù)本身的稱為函數(shù)遞歸,而間接調(diào)用該函數(shù)稱為函數(shù)的間接遞歸調(diào)用。顯然題目中所說(shuō)得函數(shù)調(diào)用為函數(shù)的間接遞歸調(diào)用。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
57.C在C語(yǔ)言中,二維數(shù)組的名字表示的是二維數(shù)組的地址,表達(dá)式*(W+1)表示的是二維數(shù)組的第一行的第二個(gè)元素。在其前面再加上*(*(w+1))就是錯(cuò)誤的表達(dá)式。
58.A
59.A解析:函數(shù)rewind的功能是將文件指針重新指向一個(gè)流的開(kāi)頭。用法如下:
intrewind(FILE*stream);并且無(wú)返值。
60.A解析:本題考查了continue和break語(yǔ)句用在循環(huán)語(yǔ)句中的作用。break語(yǔ)句的作用是結(jié)束本層循環(huán),而continue語(yǔ)句的作用是結(jié)束本次循環(huán)直接進(jìn)入到下次循環(huán)。
61.D
62.B
63.C結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)式順序,選擇,和循環(huán)結(jié)構(gòu)。
64.C在for循環(huán)中,當(dāng)y的值為9、6或3時(shí),執(zhí)行輸出語(yǔ)句,輸出表達(dá)式--Y的值。Y先自減l,然后再輸出y的值。
65.B本題是對(duì)基本知識(shí)點(diǎn)的理解,預(yù)處理命令行的位置沒(méi)有規(guī)定,只是習(xí)慣寫(xiě)在起始位置而已,當(dāng)需要時(shí)才用#include<stdio.h>頭文件,預(yù)處理的作用就是實(shí)現(xiàn)宏定義和條件編譯。
66.B在本題中,for循環(huán)結(jié)構(gòu)缺省了表達(dá)式2,而表達(dá)式2的作用是用來(lái)判斷循環(huán)是否結(jié)束,在缺省該語(yǔ)句的情況下,循環(huán)將無(wú)法結(jié)束,從題目給出的四個(gè)循環(huán)結(jié)構(gòu)我們可以看出,能構(gòu)成死循環(huán)的是選項(xiàng)B,該選項(xiàng)中for結(jié)構(gòu)的表達(dá)式2一直為1,即真,這樣循環(huán)就無(wú)法結(jié)束。因此,本題正確的答案選B。
67.Aflag為ld,時(shí)從小到大排序,flag為0時(shí)從大到小排序,這道題要注意排序的起始,和排序的個(gè)數(shù),答案選擇A)。
68.C
69.D
70.D
71.C字符常量用一對(duì)單引號(hào)括起來(lái),而且單引號(hào)之內(nèi)只能有一個(gè)字符。
72.B注:與軟件測(cè)試要對(duì)比著復(fù)習(xí)
73.B
74.C本題主要考查與算法有關(guān)的基本知識(shí)。算法是對(duì)一個(gè)問(wèn)題求解步驟的描述,是求解問(wèn)題的方法,它是指令的有限序列,其中的每條指令表示一個(gè)或多個(gè)操作。算法的效率不僅與問(wèn)題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)。
算法的時(shí)間復(fù)雜度和空間復(fù)雜度是衡量一個(gè)算法好壞的度量,其中時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;空間復(fù)雜度是指算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間。算法的空間復(fù)雜度與時(shí)間復(fù)雜度不一定相關(guān)。
數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)的邏輯關(guān)系,與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān),是獨(dú)立于計(jì)算機(jī)的。因此,題目中說(shuō)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)一一對(duì)應(yīng)的說(shuō)法不正確。本題答案選C。
75.B本題主要考查do…while結(jié)構(gòu)。在程序中,首先定義了一個(gè)變量x,其初值為-1,然后執(zhí)行循環(huán)體。
第一次循環(huán)時(shí),x=x*x-1;運(yùn)行后x的值為0,那么此時(shí)!x的值為非0,其值是真,循環(huán)繼續(xù)進(jìn)行。
第二次循環(huán)時(shí),x=x*x-1;運(yùn)行后x的值為-1,那么此時(shí)!x的結(jié)果其為非真,即假,循環(huán)結(jié)束。
那么循環(huán)執(zhí)行的次數(shù)應(yīng)該為兩次,因此,本題正確答案為B。
76.D在本題中,首先定義了一個(gè)字符型變量c,然后要求找出能判斷c中字符為小寫(xiě)字母的表達(dá)式。
選項(xiàng)A的表達(dá)式′a′<=c<=′z′是一個(gè)錯(cuò)誤的表達(dá)式,系統(tǒng)在編譯時(shí),會(huì)因?yàn)樵撜Z(yǔ)句報(bào)錯(cuò)。
選項(xiàng)B的表達(dá)式(c>=′a′)||(c<=′z′)是判定變量c的字符是大于等于字符a的字符或者小于等于z的字符,這其實(shí)相當(dāng)于ASCII碼中所有的字符,不能完成題目的要求。
選項(xiàng)C的表達(dá)式(′a′<=c)and(′z′>=c)是一個(gè)錯(cuò)誤的表達(dá)式,在C語(yǔ)言中,沒(méi)有定義一個(gè)and關(guān)鍵字,系統(tǒng)在編譯時(shí)會(huì)報(bào)錯(cuò)。
選項(xiàng)D的表達(dá)式(c>=′a′)&&(c<=′z′)是判定變量c的字符同時(shí)具有大于等于字符a和小于等于z的特點(diǎn),很顯然,這樣的字符是小寫(xiě)字母。
通過(guò)上面的分析,我們可以知道本題正確的答案是D。
77.D解析:算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
78.B解析:本題考查printf函數(shù)的格式。在printf函數(shù)中,如果格式說(shuō)明符中有兩個(gè)%說(shuō)明,則將第1個(gè)%后面的字符原樣輸出,并不輸出其對(duì)應(yīng)的變量值。
79.D
\n因?yàn)閤=f,所以寫(xiě)成A+(x-a+1)=A+(f-a+1)=A+6=J,故選擇D選項(xiàng)。
\n
80.D
81.
82.
【解析】要返回指定成績(jī)的學(xué)生數(shù)據(jù),首先應(yīng)該將所有學(xué)生的成績(jī)與指定成績(jī)相比較。如果有學(xué)生的成績(jī)與指定成績(jī)相等,則將該學(xué)生的記錄返回給主函數(shù),否則將學(xué)號(hào)置成空串,成績(jī)置一l返回給主函數(shù)。
2022年甘肅省金昌市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.對(duì)于循環(huán)隊(duì)列()。
A.無(wú)法判斷隊(duì)列是否為空B.無(wú)法判斷隊(duì)列是否為滿C.隊(duì)列不可能滿D.以上說(shuō)法都不對(duì)
2.在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。
A.方便運(yùn)算的實(shí)現(xiàn)B.使單鏈表至少有一個(gè)結(jié)點(diǎn)C.標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D.說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)
3.鏈棧與順序棧相比,比較明顯的優(yōu)點(diǎn)是()。
A.插入操作更加方便B.刪除操作更加方便C.不會(huì)出現(xiàn)下溢的情況D.不會(huì)出現(xiàn)上溢的情況
4.如果有n個(gè)節(jié)點(diǎn)用二叉樹(shù)來(lái)存儲(chǔ),那么二叉樹(shù)的最小深度為()
A.Log2(n+1)B.Log2(n)C.Log2(n-1)D.n/2
5.廣義表((a),a)的表頭是()。
A.aB.()C.(a)D.((a))
6.
7.有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);}程序運(yùn)行后的輸出結(jié)果是
A.12B.123C.234D.345
8.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
9.下列敘述中錯(cuò)誤的是()。
A.在C語(yǔ)言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語(yǔ)言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容
C.在C語(yǔ)言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別
D.在C語(yǔ)言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量
10.設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
11.以下說(shuō)法錯(cuò)誤的是()。
A.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序不能解決過(guò)于復(fù)雜的問(wèn)題
B.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決一些簡(jiǎn)單的問(wèn)題
C.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決遞歸問(wèn)題
D.由3種基本結(jié)構(gòu)組成的結(jié)構(gòu)化程序能解決數(shù)學(xué)上有解析解的問(wèn)題
12.和順序棧相比,鏈棧有一個(gè)比較明顯的優(yōu)勢(shì)是()。
A.通常不會(huì)出現(xiàn)棧滿的情況B.通常不會(huì)出現(xiàn)??盏那闆rC.插入操作更容易實(shí)現(xiàn)D.刪除操作更容易實(shí)現(xiàn)
13.下列程序的輸出結(jié)果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
14.以下程序的輸出結(jié)果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
15.設(shè)有以下語(yǔ)句
charchl,ch2;scanf("%c%C",&chl,&ch2);
若要為變量chl和ch2分別輸入字符A和B,正確的輸入形式應(yīng)該是()。
A.A和B之間用逗號(hào)間隔
B.A和B之間不能有任何間隔符
C.A和B之間可以用回車(chē)間隔
D.A和B之間用空格間隔
16.
17.若x、y、z、m均為int型變量,則執(zhí)行下面語(yǔ)句后m的值是()m=1;x=2;y=3;m=(m<x)?m:x;m=(m<y)?m:y;m=(m<y)?m:z;
A.1B.2C.3D.4
18.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
19.若有說(shuō)明語(yǔ)句:charc='\72'則變量c()。
A.包含1個(gè)字符B.包含2個(gè)字符C.包含3個(gè)字符D.說(shuō)明不合法,c的值不確定
20.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,I;其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用是()
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
二、2.填空題(20題)21.以下程序運(yùn)行后的輸出結(jié)果是______。
structNODE
{intk;
structNODE*link;
};
main()
structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q)
{p->k-++i;p++;
q->k-i++;q--;
}
q->k=i;
for(i-0;i<5;i++)
printf("%d",m[i].k);
printf("\n");
22.數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、______、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段、運(yùn)行和維護(hù)階段。
23.若有語(yǔ)句:
inti=-19,j=i%4;
printf("%d\n",j);
則輸出結(jié)果是【】。
24.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過(guò)指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
25.下列程序的運(yùn)行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
26.下面程序的運(yùn)行結(jié)果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
27.以下函數(shù)inverse的功能是使一個(gè)字符串按逆序存放,請(qǐng)?zhí)羁铡?/p>
inverse(charstr[])
{charm;
inti,j;
for(i=0,j=strlen(str);i<strlen(str)/2;【】,j--)
{m=str[i];
str[i]=【】;
【】;
}
}
28.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
29.在E-R圖中,矩形表示【】。
30.在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
31.設(shè)y是int型,請(qǐng)寫(xiě)出y為奇數(shù)的關(guān)系表達(dá)式【】。
32.以下程序的輸出結(jié)果是()。
#include<stdio.h>
fun()
{inta=0;
a+=3;
printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<=4;cc++)
fun();
printf("\n");
}
33.在深度為7的滿二叉樹(shù)中,度為2的結(jié)點(diǎn)個(gè)數(shù)為【】。
34.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
35.以下程序的運(yùn)行結(jié)果是()。
main()
(inta=2,b=7,c=5;
switch(a>0)
{case1:switch(b<0)
{case1:switch(");break;
case2:printf("!");break;
}
case0:switch(c==5)
{case0:printf("*");break;
case1:printf("#");break;
case2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}
36.若有如下程序:
sub(int*y)
{while(--(*y));
printf("%d",(*y)--);}
main()
{intx=10;
sub(&x);
}
則程序運(yùn)行后的輸出結(jié)果是【】。
37.下列的for語(yǔ)句的循環(huán)次數(shù)為_(kāi)_____。
for(x=1,y=0;(y!=19)&&(x<7);x++);
38.以下程序運(yùn)行后的輸出結(jié)果是()。main(){inta,b,c;a=10;b=20;c=(a/b<1)&&(a%b<1);printf("%d%d%d\n",a,b,C);}
39.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫(xiě)適當(dāng)內(nèi)容,使程序能正常運(yùn)行。
#include<stdio.h>
【】(double,double);
main()
{doublex,y;
scanf("%If%If",&x,&y);
printf("%If\n",max(x,y));
}
doublemax(doublea,doubleb)
{return(a>b?a:b);}
40.設(shè)有下列程序:
#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);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車(chē)符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
三、1.選擇題(20題)41.軟件需求分析階段的工作可以分為4個(gè)方面:需求獲取、需求分析、編寫(xiě)需求分析說(shuō)明書(shū)和
A.階段性報(bào)告B.需求評(píng)審C.總結(jié)D.都不正確
42.若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。
A.i*m+j-1B.i*m+jC.j*m+1D.i*m+i+1
43.定義int*swap()指的是______。
A.一個(gè)返回整型值的函數(shù)swap()
B.一個(gè)返回指向整型值指針的函數(shù)swap()
C.一個(gè)指向函數(shù)swap()的指針,函數(shù)返回一個(gè)整型值
D.以上說(shuō)法均錯(cuò)
44.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A.A.&B.^C.||D.~
45.以下程序段的執(zhí)行結(jié)果為#definePLUS(X,Y)X+Ymain(){intx=1,y=2,z=3,sum;sum=PLUS(x+y,z)*PLUS(y,z);printf("SUM=%d",sum);}
A.SUM=9B.SUM=12C.SUM=18D.SUM=28
46.若某二叉樹(shù)的前序遍歷訪問(wèn)順序是abdgcefh,中序遍歷訪問(wèn)順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問(wèn)順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
47.若有語(yǔ)句:char*line[5];,以下敘述中正確的是
A.定義line是一個(gè)數(shù)組,每個(gè)數(shù)組元素是一個(gè)基類型為char為指針變量
B.定義line是一個(gè)指針變量,該變量可以指向一個(gè)長(zhǎng)度為5的字符型數(shù)組
C.定義line是一個(gè)指針數(shù)組,語(yǔ)句中的*號(hào)稱為間址運(yùn)算符
D.定義line是一個(gè)指向字符型函數(shù)的指針
48.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
49.下列關(guān)于函數(shù)的敘述中正確的是()。A.A.每個(gè)函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B.每個(gè)函數(shù)都可以被單獨(dú)編譯
C.每個(gè)函數(shù)都可以單獨(dú)運(yùn)行
D.在一個(gè)函數(shù)內(nèi)部可以定義另一個(gè)函數(shù)
50.在int(*prt)[3];定義中,標(biāo)識(shí)符prt()。
A.定義不合法
B.是一個(gè)指針數(shù)組名,每個(gè)元素都是一個(gè)指向整型變量的指針
C.是一個(gè)指針,它指向一個(gè)具有三個(gè)元素的一維數(shù)組
D.是一個(gè)指向整型變量的指針
51.以下程序錯(cuò)誤的是()。
A.main(){intx,y,z;x=0;y=x-1;z=x+y;}
B.main(){intx,y,z;x=0,y=x+1;z=x+y;}
C.main(){intx;inty;intz;x=0,y=x+1;z=x+y;}
D.main(){intx,y,z;x=0;y=x+1;z=x+y,}
52.若有說(shuō)明:intn=2,*p=&n,*q=p;,則以下非法的賦值語(yǔ)句是
A.p=q;B.*p=*q;C.n=*q;D.p=n;
53.有以下函數(shù)定義:intmypr(doublea,doubleb){returna*b;}若以下選項(xiàng)中所用變量都已正確定義并賦值,錯(cuò)誤的函數(shù)調(diào)用是
A.if(mypr(x,y)){……}
B.z=mypr(mypr(x,y),mypr(x,y));
C.z=mypr(mypr(x,y)x,y);
D.mypr(x,y);
54.有一個(gè)數(shù)值152,它與十六進(jìn)制數(shù)6A相等,那么該數(shù)值是()
A.二進(jìn)制數(shù)B.八進(jìn)制C.十進(jìn)制數(shù)D.四進(jìn)制數(shù)
55.若執(zhí)行下列的程序時(shí),從鍵盤(pán)上輸入1和2,則輸出結(jié)果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
56.在函數(shù)調(diào)用過(guò)程中,如果函數(shù)funA調(diào)用了函數(shù)funB,函數(shù)funB又調(diào)用了函數(shù)funA,則()。
A.稱為函數(shù)的直接遞歸調(diào)用B.稱為函數(shù)的間接遞歸調(diào)用C.稱為函數(shù)的循環(huán)調(diào)用D.C語(yǔ)言中不允許這樣的遞歸調(diào)用
57.若有定義intw[3][5];,則以下不能正確表示該數(shù)組元素的表達(dá)式是A.*(*w+3)B.*(*w+1)[4]C.*(*(*w+1))D.*(&w[0][0]+1)
58.下列程序的輸出結(jié)果是()main(){intx=0.5;charz=‘a(chǎn)’;printf(“%d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
59.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開(kāi)始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動(dòng)移至下一個(gè)字符位置
60.有以下程序:main(){intx=0,y=0,i;for(i=1;++i){if(i%2==0){x++;continue;}if(i%5==0){y++;break;}}printf("%d,%d",x,y);}程序的輸出結(jié)果是()。
A.2,1B.2,2C.2,5D.5,2
四、選擇題(20題)61.下列程序的輸出結(jié)果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
62.
63.結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是()。
A.for、while、switchB.輸入、輸出、處理C.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)D.主程序、子程序、函數(shù)
64.有以下程序#includemain{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運(yùn)行結(jié)果是()。A.741B.963C.852D.875421
65.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭
C.每個(gè)C程序必須在開(kāi)頭包含預(yù)處理命令行:#include
D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
66.對(duì)表達(dá)式for(表達(dá)式1;;表達(dá)式3)可理解為()。
A.for(表達(dá)式1;0;表達(dá)式3)
B.for(表達(dá)式1;1;表達(dá)式3)
C.for(表達(dá)式1;表達(dá)式1;表達(dá)式3)
D.for(表達(dá)式1;表達(dá)式3;表達(dá)式3)
67.以下程序中函數(shù)f的功能是:當(dāng)na9為1時(shí),進(jìn)行由小到大排序;當(dāng)fla9為oN。進(jìn)行由大到小排序。程序運(yùn)行后的輸出結(jié)果是()
68.
69.
70.
71.已定義c為字符型常量,則下列語(yǔ)句中正確的是()。
A)c=′97′B)c="97"
C)c=97D)c="a"
72.(48)軟件調(diào)試的目的是()
A.發(fā)現(xiàn)錯(cuò)誤
B.改正錯(cuò)誤
C.改善軟件的性能
D.挖掘軟件的潛能
73.
74.下列敘述中不正確的是。
A.算法的效率不僅與問(wèn)題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有關(guān)
B.算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量
C.?dāng)?shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的
D.算法的時(shí)間復(fù)雜度與空間復(fù)雜度不一定相關(guān)
75.關(guān)于以下程序段的描述,正確的是
x=-1;
do
{x=x*x-1;}while(!x);
A.是死循環(huán)B.循環(huán)執(zhí)行兩次
C.循環(huán)執(zhí)行一次D.有語(yǔ)法錯(cuò)誤
76.若變量c為char類型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是
A.’a’<=c<=’z’B.(c>=’a’)||(c<=’z’)
C.(’a’<=c)and(’z’>=c)D.(c>=’a’)&&(c<=’z’)
77.算法的空間復(fù)雜度是指()。
A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.算法程序所占的存儲(chǔ)空間D.執(zhí)行算法需要的內(nèi)存空間
78.
若有下列定義(設(shè)int類型變量占2個(gè)字節(jié)):
inti=8,j=9;
則下列語(yǔ)句:
printf("i=%%d,j=%%d\n",i,j);
輸出的結(jié)果是()。
A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
79.
下列程序執(zhí)行后的輸出結(jié)果是()。
main
{intx=f;printf("%c\n",A+(x-a+1));}
A.GB.HC.ID.J
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤(pán)上輸入一個(gè)3行3列的矩陣的各個(gè)元素的值,然后輸出主對(duì)角線元素之和。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放人結(jié)構(gòu)體數(shù)組stu中。請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是:函數(shù)返回指定成績(jī)的學(xué)生數(shù)據(jù),指定的成績(jī)?cè)谥骱瘮?shù)中輸入。若沒(méi)找到指定的成績(jī),在結(jié)構(gòu)體變量中給學(xué)號(hào)置空串,給成績(jī)置-1,作為函數(shù)值返回。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥理學(xué)復(fù)習(xí)計(jì)劃的制定與執(zhí)行試題及答案
- 六年級(jí)語(yǔ)文能力提高計(jì)劃試題及答案
- 透視2024年統(tǒng)計(jì)學(xué)考試命題思路題及答案
- 2024年寵物營(yíng)養(yǎng)問(wèn)題解析試題及答案
- 2025年乘用車(chē)變速器齒輪合作協(xié)議書(shū)
- 2024年二手車(chē)評(píng)估師試題集錦及答案
- 2024年質(zhì)檢員考試中常見(jiàn)誤區(qū)及試題及答案
- 電競(jìng)賓館面試題及答案
- 2024年藥理學(xué)考試的考情分析與試題答案
- 寵物營(yíng)養(yǎng)師培養(yǎng)計(jì)劃的關(guān)鍵點(diǎn)試題及答案
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 電子產(chǎn)品生產(chǎn)工藝流程手冊(cè)
- 2023-爾雅《星海求知:天文學(xué)的奧秘》課后章節(jié)答案
- LY/T 1955-2022林地保護(hù)利用規(guī)劃林地落界技術(shù)規(guī)程
- 專練11(30題)(網(wǎng)格作圖題)2022中考數(shù)學(xué)考點(diǎn)500題(吉林)解析版
- GB/T 1936.1-2009木材抗彎強(qiáng)度試驗(yàn)方法
- 馬克思主義唯物史觀課件
- 工商企業(yè)管理專業(yè)案例分析報(bào)告
- DB15T 2403-2021肉羊育種數(shù)據(jù)管理規(guī)范
- 口腔種植專用病歷【范本模板】
- 《空中領(lǐng)航學(xué)》4.2 確定飛機(jī)位置
評(píng)論
0/150
提交評(píng)論