![2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計_第1頁](http://file4.renrendoc.com/view/00413b9d504395719f47c95399cf1e89/00413b9d504395719f47c95399cf1e891.gif)
![2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計_第2頁](http://file4.renrendoc.com/view/00413b9d504395719f47c95399cf1e89/00413b9d504395719f47c95399cf1e892.gif)
![2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計_第3頁](http://file4.renrendoc.com/view/00413b9d504395719f47c95399cf1e89/00413b9d504395719f47c95399cf1e893.gif)
![2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計_第4頁](http://file4.renrendoc.com/view/00413b9d504395719f47c95399cf1e89/00413b9d504395719f47c95399cf1e894.gif)
![2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計_第5頁](http://file4.renrendoc.com/view/00413b9d504395719f47c95399cf1e89/00413b9d504395719f47c95399cf1e895.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若已知一個棧的進(jìn)棧序列是l,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=3,則P2為()。
A.可能是2B.一定是2C.可能是1D.一定是1
2.下列可用于C語言用戶標(biāo)識符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
3.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
4.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
5.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。
A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)
6.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為______。
A.10101001B.10101000C.11111101D.1010101
7.以下有關(guān)宏的描述不正確的是()。
A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進(jìn)行替換C.宏名無類型D.宏名必須用大寫字母表示
8.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
9.以下選項中是非轉(zhuǎn)義字符的是()。
A.‘\d’B.‘\t’C.‘\b’D.‘\r’
10.以下程序是用來計算兩個非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運(yùn)算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)
11.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
12.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素
A.70B.71C.69D.30
13.設(shè)有定義“inta=1,b=2,c=3;”,以下語句中執(zhí)行效果與其他3個不同的是()。A.if(a>b)c=a,a=b,b=c;
B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c;
D.if(a>b){c=a;a=b;;b=c;}
14.下列4項說法中,不正確的是______。
A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫中的數(shù)據(jù)可以共享C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復(fù)D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨(dú)立性
15.設(shè)有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,數(shù)組A的最后一個元素A6,7的存儲地址為()。
A.1024B.1440C.1448D.1432
16.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()
A.111l010B.1111100C.1011111D.1111011
17.
18.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
19.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達(dá)式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
20.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.321B.12300C.1D.123
二、2.填空題(20題)21.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do}k*=n%10*r;n/=10;r++;}while(n);
22.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號表達(dá)式)
while(s[i])(d[j]=【】;j++;}
d[j]=0;
23.計算機(jī)病毒除有破壞性、潛伏性和激發(fā)性外,還有一個最明顯的特性是【】
24.下列程序的運(yùn)行結(jié)果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
25.設(shè)有以下定義
stnctss
{intinfo;sEruc5ss*link;}x.y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請寫出刪除結(jié)點(diǎn)y的賦值語句______。
26.下列程序的運(yùn)行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
28.設(shè)a、b、c為int型變量,且a=10、b=5、c=1,則執(zhí)行完以下語句,a的值變?yōu)椤尽俊?/p>
a/=10-(++b)-(c--);
29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。
30.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
31.以下程序運(yùn)行后的輸出結(jié)果是______。
main
{
inna=b=c=5:
if(c=a+b)
printf("yes\n);
else
printf("no\n);
}
32.類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的【】。
33.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
34.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++)
printf("%d%d",X--,y);
}
35.棧的3種基本運(yùn)算是:入棧、退棧和______。
36.有以下程序:
intf(intn)
{if(n=1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序運(yùn)行后的輸出結(jié)果是【】。
37.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
38.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
39.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptrl=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
printf("%c",*(ptrl+k));}
40.下述函數(shù)統(tǒng)計一個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
三、1.選擇題(20題)41.有以下程序:mare(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
42.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
43.以下與函數(shù)fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
44.在以下給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。
A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)
45.以下正確的說法是
A.定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)
B.return后邊的值不能為表達(dá)式
C.如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)
D.如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)
46.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
47.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是______。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
48.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是A.函數(shù)調(diào)用可以作為獨(dú)立的語句存在
B.函數(shù)調(diào)用可以作為一個函數(shù)的實(shí)參
C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
D.函數(shù)調(diào)用可以作為一個函數(shù)的形參
49.以下程序的輸出結(jié)果是______。main(){union{chari[2];intk;}r;r.i[0]=2;r.i[1]=0;printf("%d\n"r.k);}
A.2B.1C.0D.不確定
50.下面程序段的運(yùn)行結(jié)果是()。chara[]="abcdefgh";char*p=a;p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
51.數(shù)據(jù)結(jié)構(gòu)作為計算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映象D.邏輯存儲
52.以下敘述中正確的是______。
A.調(diào)用printf函數(shù)時,必須要有輸出項
B.調(diào)用putchar函數(shù)時,必須在之前包含頭文件stdio.h
C.在C語言中,整數(shù)可以以十二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出
D.調(diào)用getchar函數(shù)讀人字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼
53.下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*P;P=a="china"
54.有以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2:&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序運(yùn)行后的輸出結(jié)果是
A.AbB.aaC.AaD.Bb
55.有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是
A.45B.50C.60D.55
56.有以下程序
#include<stdio.h>
main()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的運(yùn)行結(jié)果是
A.0B.1C.2D.3
57.在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是()
A.矩形B.橢圓形C.菱形D.平行四邊形
58.在C語言中,運(yùn)算對象必須是整型數(shù)的運(yùn)算符是()。
A.%B.\C.%和\D.**
59.設(shè)a和b均為double型變量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是()。
A.6.500000B.6C.5.500000D.6.000000
60.以下敘述中正確的是
A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方
B.花括號“{”和“}”只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的一部分
四、選擇題(20題)61.
62.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號就構(gòu)成賦值語句
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.OB.2C.3D.5
64.有以下程序程序運(yùn)行后的輸出結(jié)果是()
A.1,3,3B.1,3.2C.1,2,3D.3,2,1.
65.以下數(shù)組定義中錯誤的是()。
A.
B.
C.
D.
66.下列可用于C語言用戶標(biāo)識符的一組是()。
A.void,define,WORD
B.a3_3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
67.
有以下程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main
{char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.123,abeB.abc.123C.1bc,a23D.321,cba
68.
69.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點(diǎn)是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對
70.若有定義語句:inta=3,b=2,c=1;以下選項中錯誤的賦值表達(dá)式是()。
A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);
71.
有以下程序:
main
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-l;
printf("%d,%d,%d\n",x,y,z);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3。2.1C.4,3,-1D.5,2.-5
72.
73.一個函數(shù)內(nèi)有數(shù)據(jù)類型說明語句如下:
doublex,y,z(10)
關(guān)于此語句的解釋,下面說法正確的是()。
A.z是一個數(shù)組,它有10個元素
B.z是一個函數(shù),小括號內(nèi)的10是它的實(shí)參的值
C.x是一個變量,小括號內(nèi)的10是它的初值
D.語句中有錯誤,因為“z(10)”應(yīng)該為“z[10]”
74.下列選項中,不屬于模塊間耦合的是()。A.數(shù)據(jù)耦合B.標(biāo)記耦合C.異構(gòu)耦合D.公共耦合
75.有以下程序:
voidmain()
{inta=1,b=2,m=0,n=0,k;
k=((n=b>a)+b)‖(m=a<b);
printf("%d,%d\n",k,m);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.0,0B.0,1C.1,0D.1,1
76.有定義如下:
structsk
{inta;
floatb;
}data,*p;
如果p=&data;則對于結(jié)構(gòu)變量data的成員a的正確引用時()
A)(*).data.aB)(*p).a
C)p->data.aD)p.data.a
77.
78.為了避免嵌套的條件分支語句if-else的二義性,C語言規(guī)定:C程序中的else總是與()組成配對關(guān)系。
A.縮排位置相同的ifB.在其之前未配對的ifC.在其之前未配對的最近的ifD.同一行上的if
79.下列選項中,能正確定義數(shù)組的語句是()。
80.
A.intB.floatC.doubleD.不確定
五、程序改錯題(1題)81.由N個有序整數(shù)組成的數(shù)列已放在一維數(shù)組中,下列給定程序函數(shù)fun()的功能是:利用折半查找法查找整數(shù)m在數(shù)組中的位置。若找到,返回其下標(biāo)值;否則,返回-1。折半查找的基本算法是:每次查找前先確定數(shù)組中待查的范圍low和high(10w%high)。然后用m與中間位置(mid)上元素的值進(jìn)行比較。如果m的值大于中間位置元素的值,則下一次的查找范圍落在中間位置之后的元素中;反之,下一次的查找范圍落在中間位置之前的元素中,直到low>;high,查找結(jié)束。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,已知學(xué)生的記錄由學(xué)號和學(xué)習(xí)成績構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請編寫函數(shù)fun(),該函數(shù)的功能是找出成績最低的學(xué)生記錄,通過形參將其返回主函數(shù)(規(guī)定只有一個最低分)。已給出函數(shù)的首部,請完成該函數(shù)。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<stdio.h>2#include<string.h>3#include<conio.h>4#include<stdlib.h>5#defineN106typedefstructss7{charnum[10];8ints;9}STU;10fun(STUa[],STU*s)11{1213}14voidmain()15{16FILE*wf;17STUa[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71}},m18inti;19system("CLS");20printf("*****Theoriginaldata*****\n");21for(i=0;i<N;i++)22printf("No=%sMark=%d\n",a[i],num,a[i].s);23fun(a,&m);24printf("****TheResult****\n");25printf("Thelowest:%s,%d\n",m.num,m.s);26/*************************/27wf=fopen("out.dat'*,"w");28fprintf(wf,"%s,%d",m.num,m.s);29fclose(wf);30/*************************/
參考答案
1.A
2.B解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下畫線3種字符組成,且第一個字符必須為字母或下畫線,排除選項C)和D);C語言中還規(guī)定標(biāo)識符不能為C語言的關(guān)鍵字,而選項A)中void為關(guān)鍵字,故排除選項A)。
3.D本題考查兩個知識點(diǎn),按位異或左移把b左移2位化成二進(jìn)制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
4.C解析:如果沒有指明函數(shù)值類型,則默認(rèn)函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。
5.A
6.D解析:異或運(yùn)算符(^)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個相應(yīng)位同號,則結(jié)果為0(假);異號則為1(真)。取反運(yùn)算符(-)的運(yùn)算規(guī)則是:對一個二進(jìn)制數(shù)按位取反,即將0變?yōu)?,1變?yōu)?。本題(-3)是對3(二進(jìn)制形式為00000011)按位取反即11111100。表達(dá)式(2+x)(-3)的值就等價于(00000010+10100111)^11111100,結(jié)果為01010101。
7.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標(biāo)識符字符串.標(biāo)識符稱為宏名,無類型;②雙引號中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。
8.Dfun函數(shù)的功能是對數(shù)組a[]的元素從大到小進(jìn)行排序。
9.AC語言中,轉(zhuǎn)義字符又稱反斜線字符,這些字符常量總是以一個反斜線開頭后加一個特定的字符。題干中,‘\\t’表示橫向跳若干格,‘\\b’表示退格符,‘\\r’表示回車符,選項B、C、D正確,選項A錯誤。故本題答案為A選項。
10.B
11.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。
12.A
13.C因為變量“a=1,b=2”,所以表達(dá)式“a>b”不成立。選項A、B和D相當(dāng)于一條語句,選項A是逗號表達(dá)式,選項B和選項D是復(fù)合語句,所以都沒有執(zhí)行。選項C中,語句“c=a;”不執(zhí)行,語句“a=b;b=c;”執(zhí)行。故本題答案為C選項。
14.C解析:數(shù)據(jù)庫系統(tǒng)具有以下4個特點(diǎn):數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。
15.B
16.B
17.C
18.B
19.A本題考查邏輯與運(yùn)算“&&”與邏輯或運(yùn)算“||”。在選項A中,因為!a=0,所以關(guān)系表達(dá)式!a=1為0,又因為邏輯與運(yùn)算符“&&”兩邊的表達(dá)式只要一個等于零,則整個表達(dá)式為零,所以選項A正確。在選項8中,關(guān)系表達(dá)式a<b為真,表達(dá)式(a<b)&&!C為假,而表達(dá)式(a<b)&&!||1為真,所以整個表達(dá)式的值為真。選項C中,a&&b的結(jié)果為真。在選項D中,a||(b+b)&&(C-a)的結(jié)果為真。
20.D程序首先將數(shù)組a中的元素1、2、3分別寫入了d1.dat文件中,再將d1.dat文件中的數(shù)據(jù)“123”整體寫到變量n的空間中,所以輸出的數(shù)據(jù)為123。故本題答案為D選項。
21.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。
22.s[i++]s[i++]解析:本題中為了能實(shí)現(xiàn)字符串的拷貝,需要使字符數(shù)組s從頭到尾依次遍歷其所有元素.本題應(yīng)使用i的自增后置來實(shí)現(xiàn)。
23.傳染性或傳播性傳染性或傳播性
24.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。
25.x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;x.link=&z;或x.link=y.link;或x.1ink=x.1ink->link;或x.1ink=*(x.link).link;解析:本題考核的知識點(diǎn)是鏈表中結(jié)點(diǎn)的刪除。要刪除結(jié)點(diǎn)y,只需要讓結(jié)點(diǎn)x的指針域指向y結(jié)點(diǎn)的指針域所指向的后續(xù)結(jié)點(diǎn)就可,因此只需把結(jié)點(diǎn)2的地址賦給x的指針域就可以了即讓結(jié)點(diǎn)x的指針域指向結(jié)點(diǎn)2。而結(jié)點(diǎn)z得地址保存在節(jié)點(diǎn)y的指針域中,因此只需把節(jié)點(diǎn)y的指針城賦值給節(jié)點(diǎn)x的指針域即可。
26.282,8解析:do…while語句的功能是:首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達(dá)式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。這里程序初始時a=1,b=10,經(jīng)過操作b-=a;a++后b=9,a=2,判斷條件b--<O不成立,退出循環(huán),但b的值被減1,因此結(jié)果為:a=2,b=8。
27.k-1k,-1解析:顛倒一個字符串中的字符,就是首尾對應(yīng)的元素兩兩交換。簡單地可用兩個游標(biāo)變量i和j,i是前端元素的下標(biāo),j是后端元素的下標(biāo),交換以這兩個變量值為下標(biāo)的元素str[i]和str[j]。開始時,i的值為0,j的值為字符串末元素的下標(biāo)(字符串長度減1)。每次交換后,i增1,j減1。繼續(xù)交換的條件是str[i]位于str[j]的前面,即i<j。字符串末元素的下標(biāo)是它的長度減1,所以在第二個空框處應(yīng)填入-1。程序為了交換str[i]和str[j],使用了變量k,該變量應(yīng)在程序的變量定義部分中一起定義,所以在第一個空框處應(yīng)填入k。
28.3
29.關(guān)系關(guān)系解析:關(guān)系模型用;維表表示,則每個;維表代表一種關(guān)系。
30.1212解析:本題通過第一個for循坪將數(shù)組arr[0]-arr[9]分別賦值為0-9,通過第二個for循環(huán)的三次循環(huán)累加,求出結(jié)果為12,具體分析如下:
i=1:k=0+arr[1]+1即k=2;
i=2:k=2+arr[2]+2即k=6;
i=3:k=6+arr[3]+3即k=12;
31.yesyes解析:if...else構(gòu)造了一種二路分支選擇,是一種最基本的選擇結(jié)構(gòu)。本題中,if后面括號里的表達(dá)式為c=a+b為真(即c=1+3=4為真);所以,執(zhí)行s1,即執(zhí)行prinff('yes\\'),最后輸出yes。
32.實(shí)例將屬性、操作相似的對象歸為類,也就是說,類是具有共同屬性、共同方法的對象的集合。所以,類是對象的抽象,對象則是其對應(yīng)類的一個實(shí)例。
33.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
34.101091101091解析:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語句的功能是:首先計算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。
35.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個新的元素;退棧是指取出棧頂元素并賦值給一個變量;讀棧頂元素是將棧頂元素賦值給一個指定的變量,不刪除棧頂元素。
36.33解析:i=1時,f(1)=1,j=j+f(1)=0+1=1;i=2時,f(2)=f(1)+1=1+1=2,j=j+f(2)=1+3=3;此時循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。
37.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
38.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
39.gaga解析:用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b。然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。注意:用字符數(shù)組作為字符串和用指針指向的一個字符串之間的區(qū)別。
40.*s++flag==0或*(s-1)==''num*s++\r\nflag==0或*(s-1)==''\r\nnum解析:在統(tǒng)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結(jié)束。第18空應(yīng)填*s++;如果某個字符不是空格,則必需判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是一個單詞的開始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第19空應(yīng)flag==0或*(s-1)=='';最后一個空格需填寫的是返回的單詞的個數(shù),即num。
41.C解析:要獲得數(shù)組t的第i個元素的內(nèi)容,既可以使用常規(guī)的t[i]表達(dá)式,也可以將數(shù)組名t看作一個指針常量,使用表達(dá)式*(t+i)來獲取數(shù)組t的第i個元素的內(nèi)容。在本題中,for循環(huán)會循環(huán)5次,循環(huán)變量i從。開始,每次加2。所以,循環(huán)結(jié)束后,s中的值為t[0]+t[2]+t[4]+t[6]+t[6]+t[8]=1+3+5+7+9=25。故應(yīng)該選擇C。
42.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。
43.D解析:題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結(jié)尾,因此選項A不對。ftell(fp)的作用是獲取當(dāng)前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(fp)的作用是將文件指針重定位到文件開頭,所以應(yīng)該選擇D。
44.C解析:題目中的while(E)循環(huán)是當(dāng)E等于0時,循環(huán)結(jié)束,E不等于0時,繼續(xù)循環(huán)。選項C中,當(dāng)E等于0時,表達(dá)式“E==0”為真繼續(xù)循環(huán),而E不等于。時,表達(dá)式為假循環(huán)結(jié)束,這與題目中的條件不等價,故應(yīng)該選擇C。
45.C解析:選項A)中定義函數(shù)時,形參的類型說明應(yīng)該放在形參表列內(nèi)說明。老版本C語言中,對形參類型的聲明是放在函數(shù)定義的第2行,也就是不在第1行的括號內(nèi)指定形參的類型,而在括號外單獨(dú)指定。選項B)中return后面的值可以是一個表達(dá)式。選項D)中實(shí)參與形參的類型應(yīng)相同或賦值兼容。如果實(shí)參為整型而形參為實(shí)型,或者相反,則按不同類型數(shù)值的賦值規(guī)則進(jìn)行轉(zhuǎn)換,以形參類型為準(zhǔn)。
46.A解析:本題考查默認(rèn)函數(shù)的函數(shù)值的類型。在函數(shù)調(diào)用時,盡管y的類型是float,x的類型是double,但是因為函數(shù)定義時省去類型說明,系統(tǒng)默認(rèn)函數(shù)值的類型為int型,所以計算后的y的類型是int型。
47.B解析:第一次執(zhí)行while語句時,z=3>0,然后執(zhí)行z--得z=2,執(zhí)行++x得x=1<5,條件成立,執(zhí)行y=y-1=5
-1=4;第二次執(zhí)行while語句時,z=2>0,然后執(zhí)行z--得z=1,執(zhí)行++x得x=2<5,條件成立,執(zhí)行y=y-1=4-1=3;第三次執(zhí)行while語句時,z=1>0,然后執(zhí)行z--得x=0,執(zhí)行++x得x=3<5,條件成立,執(zhí)行y=y-1=3-1=2;第四次執(zhí)行while語句時因z=0,z<0條件不成立,同時執(zhí)行c--得z=-1。即執(zhí)行完while循環(huán)后x=3、y=2、z=-1。
48.D解析:本題考查函數(shù)的調(diào)用。在有參函數(shù)調(diào)用中,是將主調(diào)函數(shù)的實(shí)參值傳給被調(diào)函數(shù)的形參。按函數(shù)在程序中出現(xiàn)的位置來分,有以下三種函數(shù)調(diào)用形式:
①函數(shù)調(diào)用作為一條語句。例如:fun();這時不要求函數(shù)帶回值,只要求函數(shù)完成一定的操作。故選項A)正確。
②函數(shù)出現(xiàn)在表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)式。這時要求函數(shù)帶回一個確定的值以參加表達(dá)式的運(yùn)算。例如:c=5*max(a,b);函數(shù)max是表達(dá)式的一部分,將其值乘以5后賦給c。故選項C)正確。
③函數(shù)調(diào)用作為一個函數(shù)的實(shí)參,例如:m=max(a,max(b,c));其中max(b,c)是一次函數(shù)調(diào)用,它的值作為max另一次調(diào)用的實(shí)參。故選項B)正確。
函數(shù)調(diào)用不可作為一個函數(shù)的形參,因為函數(shù)調(diào)用參數(shù)的數(shù)據(jù)傳遞是單向傳遞,即實(shí)參傳給形參,不能由形參傳給實(shí)參。故選項D)錯誤。
49.A解析:根據(jù)共用體的定義可知:共用體r的成員k和成員i[2]是共用同—段內(nèi)存空間,所以,當(dāng)程序給r.i[0]賦值后,實(shí)際上,共用體成員k的值也確定了,為2。所以打印輸出的結(jié)果應(yīng)當(dāng)為2。
50.C解析:p被定義為指針型變量,指向字符數(shù)組a的首地址。執(zhí)行p+=3;指針后移3位,指向d。strcpy(p,'ABCD')將字符串'ABCD'(連同\'\\0\')復(fù)制到p所指向的地址單元中,strlen()函數(shù)計算p所指向的字符串的長度,返回字符串中字符的個數(shù)(不計\'\\0\'),返回值為字符串'ABCD'中字符的個數(shù)4。
51.A解析:數(shù)據(jù)結(jié)構(gòu)作為計算機(jī)的一門學(xué)科,主要研究和討論以下三個方面的問題:①數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系,即數(shù)據(jù)的邏輯結(jié)構(gòu);②在對數(shù)據(jù)進(jìn)行處理時,各數(shù)據(jù)元素在計算機(jī)中的存儲關(guān)系,即數(shù)據(jù)的存儲結(jié)構(gòu);③對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算。
52.B解析:printf的輸出項指的是輸出的變量或表達(dá)式,但是printf可以只輸出字符串,這不屬輸出項。C語言中的整數(shù)不能按十二進(jìn)制的形式輸出。對于getchar,雖然輸入的是字符所對應(yīng)的ASCII碼,但是計算機(jī)會把這個ASCII碼當(dāng)作字符來處理的。
53.D解析:C語言中操作一個字符串常量的方法有:①將字符串常量存放在一個字符數(shù)組之中;②用字符指針指向字符串,然后通過字符指針來訪問字符串存儲區(qū)域。當(dāng)字符串常量在表達(dá)式中出現(xiàn)時,根據(jù)數(shù)組的類型轉(zhuǎn)換規(guī)則,將其轉(zhuǎn)換成字符指針。
本題D)項中錯誤的關(guān)鍵是對數(shù)組初始化時,可以在變量定義時整體賦初值,但不能在賦值語句中整體賦值。
54.A解析:指針作為函數(shù)參數(shù)的運(yùn)用,經(jīng)過分析得知fun()函數(shù)的功能:將形參a指向形參b所指的存儲空間,然后使形參a指向變量的值加1。在主函數(shù)中定義了字符型指針變量p1和p2,并讓它們分別指向“c1和c2。然后將p1、p2作為實(shí)參傳遞給形參a、b。在fun()函數(shù)中,首先讓指針變量p1指向P2,然后P1指向的存儲空間的值加1,即讓變量c2加1為“b”,而c1的值沒有被改變,仍然是“A”。
55.C解析:內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時,以前調(diào)用時的數(shù)值仍然保留著。fun(a,5)的值是15,再次調(diào)用后sum=15,所以Fun(b,4)=45,s=45+15=60。
56.B解析:本題考查循環(huán)語句的嵌套以及條件的判斷問題。在程序中,內(nèi)層循環(huán)判斷條件為'\ue008j<=i\ue009',而j的初值為3,故當(dāng)i的值為1和2時,內(nèi)層循環(huán)體都不會被執(zhí)行。只有當(dāng)i和j都等于3時才會執(zhí)行一次。m的值為55對3取模,計算結(jié)果為1。
57.C解析:E-R模型可用E-R圖來表示,它具有3個要素:①實(shí)體(型)用矩形框表示,框內(nèi)為實(shí)體名稱。②屬性用橢圓型來表示,并用線與實(shí)體連接。屬性較多時也可以將實(shí)體及其屬性單獨(dú)列表。③實(shí)體間的聯(lián)系用菱形框表示。用線將菱形框與實(shí)體相連,并上標(biāo)注聯(lián)系的類型。
58.A解析:在C語言中,“%”運(yùn)算符兩側(cè)的運(yùn)算數(shù)必須是整型。
59.D
60.A解析:“/*”與“*/”之間的信息稱為注釋信息,在C語言中,允許在任何能夠插入空格符的位置插入注釋,但C語言的注釋不能進(jìn)行嵌套,故選項A正確;在C語言中,函數(shù)體是從花括號“{”開始,到花括號“}”結(jié)束.但沒有規(guī)定花括號“{”和“}”只能作為函數(shù)體定界符,故選項B錯誤;選項C中前半句是正確的,在C程序中由有一個或多個函數(shù)所組成,但不是所有的函數(shù)都由用戶自己命名,有些函數(shù)比如庫函數(shù),主函數(shù)main()就不能由用戶來命名,故選C不正確;在C語言中明確規(guī)定每條語句以分號“;”結(jié)束,分號是語句不可缺少的一部分,故選項D不正確。所以,4個選項中選項A符合題意。
61.C
62.C解析:C語句必須以分號結(jié)束,選項A是正確的。復(fù)合語句在語法上被看作一條語句,選項B也是正確的。空語句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當(dāng)作條件子句或者循環(huán)體來看待,所以選項c是錯誤的。賦值表達(dá)式末尾加分號就構(gòu)成賦值語句,選項D正確。故本題應(yīng)該選擇C。
63.B程序首先給字符數(shù)組8[]賦值為“012xy”,for循環(huán)語句的功能是遍歷字符串,通過if條件語句對字符串中的小寫字母計數(shù),在符串中小寫字母為j2個,即n=2。因此B選項正確。
64.A執(zhí)行(a==1&&b++==2)和b!=2然后輸出a、b、CSY別為l、3、3,答案為A)。
65.B二維數(shù)組的初始化有以下幾種形式:①分行進(jìn)行初始化;②不分行進(jìn)行初始化;③部分?jǐn)?shù)組元素進(jìn)行初始化;④省略第一維的定義,不省略第二維的定義。選項B)等號右邊分了3行,大于等號左邊數(shù)組的行數(shù)2。
66.B解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃線,排除選項C)和D);C語言中還規(guī)定標(biāo)識符不能為C語言的關(guān)鍵字,而選項A)中void為關(guān)鍵字,故排除選項A)。
67.C
\n本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒有變。
\n
68.C
69.BSEEK_SET代表文件的開始,SEEK_END代表文件末尾,SEEK_CUR代表文件當(dāng)前位置。
70.A不能將變量或常量賦給一個表達(dá)式,所以A選項中(b=4)=3是錯誤的。
71.B
\nwhile語句執(zhí)行如下:
\n當(dāng)z=3,x=0時,表達(dá)式Z-->0&&++x<5為真,z的值變?yōu)?,x的值變?yōu)?,執(zhí)行語句“y=y-1;”,y的值變?yōu)?;
\n當(dāng)z=2,x=1時,表達(dá)式z-->O&&++x<5為真,z的值變?yōu)?,x的值變?yōu)?,執(zhí)行語句“y=y-1;”,y的值變?yōu)?;
\n當(dāng)z=1,x=2時,表達(dá)式z-->0&&++x<5為真,z的值變?yōu)?,X的值變?yōu)?,執(zhí)行語句“y=y-1;”,y的值變?yōu)?;
\n當(dāng)z=0,x=3時,表達(dá)式z-->0為假,表達(dá)式(Z-->O&&++x<5)為假,z的值為-1,不進(jìn)行++x<5的判斷,不執(zhí)行語句y=y-1;;
\n所以x的值為3,y的值為2,z的值為-1。答案為B。
\n
72.D
73.D數(shù)組的表示為z[10],也不是一個函數(shù),函數(shù)應(yīng)該有形參,變量沒有那樣的表示法,賦初值的形式的不對。
74.C解析:模塊之間的耦合程度反映了模塊的獨(dú)立性,也反映了系統(tǒng)分解后的復(fù)雜程度。按照耦合程度從弱到強(qiáng),可以將其分成5級,分別是:數(shù)據(jù)耦合、同構(gòu)耦合、控制耦合、公用耦合和內(nèi)容耦合。選項C),沒有這種耦合方式。注意:評價模塊獨(dú)立性的主要標(biāo)準(zhǔn),以及對它們的定義和分類。
75.C先計算b>a,b=2,a=1,所以n=1,1+b=3,不為0,所以或運(yùn)算結(jié)果為1,不計算右邊的表達(dá)式的值,所以m的值不變,k=1,m=0.
76.B結(jié)構(gòu)體變量的引用。
77.A
78.C
79.A數(shù)組定義的長度必須為常量,所以A)選項正確。
80.C根據(jù)混合運(yùn)算規(guī)則,如果有一個數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。
81.(1)錯誤:voidfun(inta[],intm)
正確:intfun(inta[],intm)或fun(inta[],intm)
(2)錯誤:elseIf(m>a[mid])
正確:elseif(m>a[mid])
【解析】本題考查的是折半查找算法、函數(shù)的定義和if...else語句。首先,函數(shù)的定義需要考慮返回值的類型,返回值為int類型。本題需求值,所以函數(shù)的返回值不能是void類型。因為如果去函數(shù)類型標(biāo)識符,系統(tǒng)默認(rèn)為int類型,所以函數(shù)定義應(yīng)為“intfun(inta[],intm)”或“fun(inta[],intm)”;關(guān)鍵詞if要區(qū)分大小寫,寫錯系統(tǒng)將無法識別。
82.1fun(STUa[],STU*s)2{3inti;4*s=a[0];/*假設(shè)第1個元素值最小*/5for(i=0;i<N;i++)/*如果在循環(huán)的過程中再發(fā)現(xiàn)比第1個元素值更小的元素則賦給*s*/6if(s->s>a[i].s)7*s=a[i];8}題目要求找出結(jié)構(gòu)體數(shù)組元素中的最小值。假設(shè)數(shù)組中第1個元素值最小,即*s=a[0];,如果在循環(huán)的過程中發(fā)現(xiàn)比第1個元素值更小的,就將指針s指向該元素,直到找到值最小的元素。另外,本題還涉及結(jié)構(gòu)體中的指向運(yùn)算符。2021年江西省南昌市全國計算機(jī)等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若已知一個棧的進(jìn)棧序列是l,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=3,則P2為()。
A.可能是2B.一定是2C.可能是1D.一定是1
2.下列可用于C語言用戶標(biāo)識符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
3.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
4.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
5.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。
A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)
6.設(shè)char型變量x中的值為10100111,則表達(dá)式(2+x)(-3)的值為______。
A.10101001B.10101000C.11111101D.1010101
7.以下有關(guān)宏的描述不正確的是()。
A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進(jìn)行替換C.宏名無類型D.宏名必須用大寫字母表示
8.有以下程序#include<stdio.h>voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/{intt,i,j;for(i=0;i<n-1;j++)for(j=i+l;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main{intc[10]={1,2,3,4,5,6,7,8,9,0),i;fun(c+4,6);for(i=0;i<10;i++)printf("%d,",c[i]);printf("\n");}程序運(yùn)行的結(jié)果是()。A.1,2,3,4,5,6,7,8,9,0,
B.0,9,8,7,6,5,1,2,3,4,
C.0,9,8,7,6,5,4,3,2,1,
D.1,2,3,4,9,8,7,6,5,0,
9.以下選項中是非轉(zhuǎn)義字符的是()。
A.‘\d’B.‘\t’C.‘\b’D.‘\r’
10.以下程序是用來計算兩個非負(fù)數(shù)之間的最大公約數(shù):我們假設(shè)x,y中最大的那個數(shù)的長度為n,基本運(yùn)算時間復(fù)雜度為O(1),那么該程序的時間復(fù)雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)
11.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
12.從一個長度為100的順序表中刪除第30個元素時需向前移動()個元素
A.70B.71C.69D.30
13.設(shè)有定義“inta=1,b=2,c=3;”,以下語句中執(zhí)行效果與其他3個不同的是()。A.if(a>b)c=a,a=b,b=c;
B.if(a>b){c=a,a=b,b=c;}
C.if(a>b)c=a;a=b;b=c;
D.if(a>b){c=a;a=b;;b=c;}
14.下列4項說法中,不正確的是______。
A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫中的數(shù)據(jù)可以共享C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復(fù)D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨(dú)立性
15.設(shè)有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,數(shù)組A的最后一個元素A6,7的存儲地址為()。
A.1024B.1440C.1448D.1432
16.十進(jìn)制數(shù)124轉(zhuǎn)換成二進(jìn)制數(shù)是()
A.111l010B.1111100C.1011111D.1111011
17.
18.設(shè)單鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為已知指針p所指結(jié)點(diǎn)不是尾結(jié)點(diǎn),若在*p之后插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列哪一個操作______。A.s->link=p;p->link=s;
B.s->link=p->link;p->link=s;
C.s->link=p->link;p=s;
D.p->link=s;s->link=p;
19.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達(dá)式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)
20.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的運(yùn)行結(jié)果是()。
A.321B.12300C.1D.123
二、2.填空題(20題)21.執(zhí)行下面程序段后,k的值是【】。
r=1;n=203;k=1
do}k*=n%10*r;n/=10;r++;}while(n);
22.若有定義語句chars[100],d[100];intj=0,i=0;且s中已賦字符串,請?zhí)羁找詫?shí)現(xiàn)拷貝。(注:不使用逗號表達(dá)式)
while(s[i])(d[j]=【】;j++;}
d[j]=0;
23.計算機(jī)病毒除有破壞性、潛伏性和激發(fā)性外,還有一個最明顯的特性是【】
24.下列程序的運(yùn)行結(jié)果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
25.設(shè)有以下定義
stnctss
{intinfo;sEruc5ss*link;}x.y,z;
且已建立如下圖所示鏈表結(jié)構(gòu):
請寫出刪除結(jié)點(diǎn)y的賦值語句______。
26.下列程序的運(yùn)行結(jié)果是______。
main()
{inta=1,b=10;
do
{b-=a;a++;}while(b--<0);
printf("%d,%d\n",a,b);
}
27.下面程序的功能是將一個字符串str的內(nèi)容顛倒過來,請?zhí)羁铡?/p>
#include<string.h>
main()
{inti,j,【】;charstr[]={"1234567"};
for(i=0,j=strlen(str)【】;i<j;i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf("%s\n",str);}
28.設(shè)a、b、c為int型變量,且a=10、b=5、c=1,則執(zhí)行完以下語句,a的值變?yōu)椤尽俊?/p>
a/=10-(++b)-(c--);
29.在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個______。
30.下面程序的輸出是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n"k);}
31.以下程序運(yùn)行后的輸出結(jié)果是______。
main
{
inna=b=c=5:
if(c=a+b)
printf("yes\n);
else
printf("no\n);
}
32.類是一個支持集成的抽象數(shù)據(jù)類型,而對象是類的【】。
33.請在以下程序第一行的下劃線處填寫適當(dāng)內(nèi)容,使程序能正確運(yùn)行。
【】(double,double);
main()
{doublex,y;
scanf("%1f%1f",&x,&y);
printf("%1f\n",max(x,y));
}
doublemax(doublea,doubleB)
{return(a>b?a:b);}
34.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++)
printf("%d%d",X--,y);
}
35.棧的3種基本運(yùn)算是:入棧、退棧和______。
36.有以下程序:
intf(intn)
{if(n=1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序運(yùn)行后的輸出結(jié)果是【】。
37.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
38.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達(dá)式為:______。
39.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptrl=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptrl+k)==*(ptr2+k))
printf("%c",*(ptrl+k));}
40.下述函數(shù)統(tǒng)計一個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>
intword(char*s)
{intnum=0,flag=0;
while(*s)
{if(【】=='')flag=0;
elseif(【】){flag=1;num++}
}
return【】;}
三、1.選擇題(20題)41.有以下程序:mare(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
42.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
43.以下與函數(shù)fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
44.在以下給出的表達(dá)式中,與while(E)中的(E)不等價的表達(dá)式是()。
A.(!E==0)B.(E>0||E<0)C.(E==0)D.(E!=0)
45.以下正確的說法是
A.定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)
B.return后邊的值不能為表達(dá)式
C.如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準(zhǔn)
D.如果形參與實(shí)參類型不一致,以實(shí)參類型為準(zhǔn)
46.下列函數(shù)值的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
47.有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);}程序執(zhí)行后的輸出結(jié)果是______。
A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
48.若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是A.函數(shù)調(diào)用可以作為獨(dú)立的語句存在
B.函數(shù)調(diào)用可以作為一個函數(shù)的實(shí)參
C.函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
D.函數(shù)調(diào)用可以作為一個函數(shù)的形參
49.以下程序的輸出結(jié)果是______。main(){union{chari[2];intk;}r;r.i[0]=2;r.i[1]=0;printf("%d\n"r.k);}
A.2B.1C.0D.不確定
50.下面程序段的運(yùn)行結(jié)果是()。chara[]="abcdefgh";char*p=a;p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
51.數(shù)據(jù)結(jié)構(gòu)作為計算機(jī)的一門學(xué)科,主要研究數(shù)據(jù)的邏輯結(jié)構(gòu)、對各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行的運(yùn)算,以及()。A.A.數(shù)據(jù)的存儲結(jié)構(gòu)B.計算方法C.數(shù)據(jù)映象D.邏輯存儲
52.以下敘述中正確的是______。
A.調(diào)用printf函數(shù)時,必須要有輸出項
B.調(diào)用putchar函數(shù)時,必須在之前包含頭文件stdio.h
C.在C語言中,整數(shù)可以以十二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出
D.調(diào)用getchar函數(shù)讀人字符時,可以從鍵盤上輸入字符所對應(yīng)的ASCII碼
53.下面說明不正確的是
A.chara[10]="china";
B.chara[10],*p=a;p="china"
C.char*a;a="china";
D.chara[10],*P;P=a="china"
54.有以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charcl='A',c2='a',*p1,*p2;p1=&c1;p2:&c2;fun(p1,p2);printf("%c%c\n",c1,c2);}程序運(yùn)行后的輸出結(jié)果是
A.AbB.aaC.AaD.Bb
55.有以下程序intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是
A.45B.50C.60D.55
56.有以下程序
#include<stdio.h>
main()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;
printf("%d\n",m);
}
程序的運(yùn)行結(jié)果是
A.0B.1C.2D.3
57.在E-R圖中,用來表示實(shí)體之間聯(lián)系的圖形是()
A.矩形B.橢圓形C.菱形D.平行四邊形
58.在C語言中,運(yùn)算對象必須是整型數(shù)的運(yùn)算符是()。
A.%B.\C.%和\D.**
59.設(shè)a和b均為double型變量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是()。
A.6.500000B.6C.5.500000D.6.000000
60.以下敘述中正確的是
A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方
B.花括號“{”和“}”只能作為函數(shù)體的定界符
C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名
D.分號是C語句之間的分隔符,不是語句的一部分
四、選擇題(20題)61.
62.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運(yùn)行
D.賦值表達(dá)式末尾加分號就構(gòu)成賦值語句
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.OB.2C.3D.5
64.有以下程序程序運(yùn)行后的輸出結(jié)果是()
A.1,3,3B.1,3.2C.1,2,3D.3,2,1.
65.以下數(shù)組定義中錯誤的是()。
A.
B.
C.
D.
66.下列可用于C語言用戶標(biāo)識符的一組是()。
A.void,define,WORD
B.a3_3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
67.
有以下程序:
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main
{char*s1="abe",*s2="123":
swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.123,abeB.abc.123C.1bc,a23D.321,cba
68.
69.函數(shù)fseek(pf,OL,SEEKEND)中的SEEKENE代表的起始點(diǎn)是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對
70.若有定義語句:inta=3,b=2,c=1;以下選項中錯誤的賦值表達(dá)式是()。
A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);
71.
有以下程序:
main
{intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-l;
printf("%d,%d,%d\n",x,y,z);
}
程序執(zhí)行后的輸出結(jié)果是()。
A.3,2,0B.3。2.1C.4,3,-1D.5,2.-5
72.
73.一個函數(shù)內(nèi)有數(shù)據(jù)類型說明語句如下:
doublex,y,z(10)
關(guān)于此語句的解釋,下面說法正確的是()。
A.z是一個數(shù)組,它有10個元素
B.z是一個函數(shù),小括號內(nèi)的10是它的實(shí)參的值
C.x是一個變量,小括號內(nèi)的10是它的初值
D.語句中有錯誤,因為“z(10)”應(yīng)該為“z[10]”
74.下列選項中,不屬于模塊間耦合的是()。A.數(shù)據(jù)耦合B.標(biāo)記耦合C.異構(gòu)耦合D.公共耦合
75.有以下程序:
voidmain()
{inta=1,b=2,m=0,n=0,k;
k=((n=b>a)+b)‖(m=a<b)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃合同文檔全文預(yù)覽
- 咨詢服務(wù)合同補(bǔ)充協(xié)議
- 銀政戰(zhàn)略合作框架協(xié)議書范本
- 2025年懷化貨運(yùn)上崗證考試題
- 商城等電子商務(wù)運(yùn)營外包服務(wù)協(xié)議書范本
- 個人地下車位出租協(xié)議書范本
- 餐飲場所裝修安全協(xié)議
- 信托業(yè)務(wù)解除居間合同
- 工程門窗安裝制作合同
- 2025年長沙駕??荚囏涍\(yùn)從業(yè)資格證考試題庫
- 教職工安全管理培訓(xùn)
- 云南省曲靖市羅平縣2024-2025學(xué)年高二上學(xué)期期末地理試題( 含答案)
- 中國糖尿病防治指南(2024版)要點(diǎn)解讀
- Unit 1 Nice boys and girls【知識精研】-一年級英語下學(xué)期(人教PEP版一起)
- 《口腔科學(xué)緒論》課件
- 《消防檢查指導(dǎo)手冊》(2024版)
- 粵教粵科版三年級下冊科學(xué)全冊課時練(同步練習(xí))
- 小學(xué)開學(xué)第一課禁毒安全
- 《婚戀觀教育》課件
- 10以內(nèi)除法口算練習(xí)題100套(十)
- 《醫(yī)療機(jī)構(gòu)環(huán)境表面清潔與消毒管理規(guī)范》-華西醫(yī)院案例
評論
0/150
提交評論