![2021-2022年安徽省宿州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第1頁](http://file4.renrendoc.com/view/9e7dbee128969eaff75a29ce92c7e29f/9e7dbee128969eaff75a29ce92c7e29f1.gif)
![2021-2022年安徽省宿州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第2頁](http://file4.renrendoc.com/view/9e7dbee128969eaff75a29ce92c7e29f/9e7dbee128969eaff75a29ce92c7e29f2.gif)
![2021-2022年安徽省宿州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第3頁](http://file4.renrendoc.com/view/9e7dbee128969eaff75a29ce92c7e29f/9e7dbee128969eaff75a29ce92c7e29f3.gif)
![2021-2022年安徽省宿州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第4頁](http://file4.renrendoc.com/view/9e7dbee128969eaff75a29ce92c7e29f/9e7dbee128969eaff75a29ce92c7e29f4.gif)
![2021-2022年安徽省宿州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)_第5頁](http://file4.renrendoc.com/view/9e7dbee128969eaff75a29ce92c7e29f/9e7dbee128969eaff75a29ce92c7e29f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年安徽省宿州市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.若a是數(shù)值類型,則邏輯表達(dá)式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
2.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L
3.下列哪一種圖的鄰接矩陣是對稱矩陣()。
A.有向圖B.無向圖C.AOV網(wǎng)D.AOE網(wǎng)
4.有以下程序intf(intA){returna%2;}main(){ints[8]={1,3,5,2,4,6),i,d=0;for(i=0;f(s[i];i++)d+=s[i];printf("%d\n",D);}程序運(yùn)行后的輸出結(jié)果是
A.9B.11C.19D.21
5.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
6.向一個(gè)棧頂指針為H的鏈棧中插入一個(gè)s所指向的結(jié)點(diǎn)時(shí),需執(zhí)行()。
A.H->link=s
B.s->link=H->link;H->link=s;
C.s->link=H;H=s;
D.s->link=H;H=H->link;
7.以下程序段中,輸出信息不能正確反映變量大小關(guān)系的是()。
A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);
B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);
C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);
D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);
8.第
17
題
若有條件表達(dá)式(exp)?a++:b--,則以下表達(dá)式中能完全等價(jià)于表達(dá)式(exp)的是
A.(exp==0)B.(exp!=0)C.(exp==1)D.(exp!=1)
9.以下敘述中錯(cuò)誤的是()。
A.通過指針變量存取某個(gè)變量值的方式稱為“直接存取”方式
B.在程序的開頭包含頭文件stdio.h后,可以給指針變量賦NULL值
C.將一個(gè)指針變量中的值賦給另一個(gè)指針變量,則這兩個(gè)指針變量指向同一地址
D.C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型
10.有以下程序A.6B.3C.8D.12
11.
12.if語句基本形式是:if(表達(dá)式)語句,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
13.以下敘述中正確的是()。
A.文件指針是一種特殊的指針類型變量
B.文件指針的值等于文件當(dāng)前讀寫位置,以字節(jié)為單位
C.文件指針的值等于文件在計(jì)算機(jī)硬盤中的存儲(chǔ)位置
D.調(diào)用fscanf函數(shù)只能向文本文件中寫入任意字符
14.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(fnnc(x,y),z);printf("%d\n",r);}該程序的輸出結(jié)果是______。
A.12B.13C.14D.15
15.如果以鏈表作為棧的存儲(chǔ)結(jié)構(gòu),則出棧操作時(shí)()。
A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷
16.下列程序的輸出結(jié)果是()。#include<stdio.h>intb=2:intfunc(int*a){b+=*a;returnb;}main{inta=1,t=2;t+=func(&a):printf("%d\n",t);}A.4B.5C.6D.8
17.以下說法錯(cuò)誤的是()。
A.散列法存儲(chǔ)的思想是由關(guān)鍵字值決定數(shù)據(jù)的存儲(chǔ)地址
B.散列表的結(jié)點(diǎn)中只包含數(shù)據(jù)元素自身的信息,不包含指針
C.負(fù)載因子是散列表的一個(gè)重要參數(shù),它反映了散列表的飽滿程度
D.散列表的查找效率主要取決于散列表構(gòu)造時(shí)選取的散列函數(shù)和處理沖突的方法
18.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
19.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
20.若有下列說明語句int(*p)();則標(biāo)識(shí)符p代表的是()
A.一個(gè)用于指向函數(shù)的指針變量,函數(shù)返回值的類型為int型
B.一個(gè)帶回值類型為整型的函數(shù)名
C.一個(gè)用于指向整型數(shù)據(jù)的指針變量
D.一個(gè)帶回值類型為指針類型的函數(shù)名
二、2.填空題(20題)21.下面的程序可對指定字符串中的字符串進(jìn)行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
22.一棵二叉樹第6層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)最多為______個(gè)。
23.下列程序段的運(yùn)行結(jié)果是______。
charstr口="ABCD",*p=str;
printf("%d\n",*(p+3));
24.棧的3種基本運(yùn)算是:入棧、退棧和______。
25.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{intx,a=1,b=2,c=3,d=4;
x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;
printf("%d\n",x);
}
26.若有以下定義,則不移動(dòng)指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是______。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
27.設(shè)有如下程序段:
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
printf("%d\n",sum);
上述程序段的輸出結(jié)果是【】。
28.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
29.以下條件表達(dá)式可計(jì)算:1+|a|的值,請?zhí)羁铡>=0?【】:【】
30.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
運(yùn)行后,i,j,m,n的值分別是_______。
31.在軟件開發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法??尚行匝芯侩A段采用的是【】。
32.以下程序運(yùn)行后的輸出結(jié)果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
33.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
34.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
35.關(guān)系模型的數(shù)據(jù)操作即是建立在關(guān)系上的數(shù)據(jù)操作,一般有【】、增加、刪除和修改四種操作。
36.已知字符'A'的ASCII碼值為65,以下語句的輸出結(jié)果是【】。
charch='B';
printf("%c%d\n",ch,ch);
37.對長度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為【】。
38.以下程序中函數(shù)fun的功能是:構(gòu)成一個(gè)如圖所示的帶頭結(jié)點(diǎn)的單向鏈表,在結(jié)點(diǎn)的數(shù)據(jù)域中放入了具有兩個(gè)字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結(jié)點(diǎn)中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。
#include<stdio.h>
typedefstructnode/*鏈表結(jié)點(diǎn)結(jié)構(gòu)*/
{charsub[3];
structnode*next;
}Node;
Nodefun(chars)/*建立鏈表*/
{……}
voiddisp(Node*h)
{Node*p;
p=h->next;
while(【】)
{printf("%s\n",P->sub);p=【】;}
}
main()
{Node*hd;
hd=fun();disp(hd);printf("\n");
}
39.下列程序的輸出結(jié)果是【】。
intt(intx,inty,ntcp,intdp)
{cp=x*x+y*y;
dp=x*x-y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf("%d%d\n",c,d);
}
40.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。
三、1.選擇題(20題)41.請讀程序:#include<stdio.h>#include<string.j>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。
A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
42.有以下程序#include<stdio.h>main(){FILE*fP;intk,n,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);fclose(fp);fp=fopen("d2.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序運(yùn)行后的輸出結(jié)果是。
A.12B.14C.1234D.123456
43.下列程序的輸出結(jié)果是______。main(){floatx=3.6;inti;i=(int)x;printf("x=%f,i=%d",x,i);}
A.x=3.600000,i=4B.x=3i=3C.x=3.600000,i=3D.x=3i=3.600000
44.以下程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12};int*p=a+5,*q=NULL;*q=8(p+5);printf("%d%d\n",*p,*q);}
A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.55
45.下面程序段的運(yùn)行結(jié)果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}
A.LANGUAGEB.languageC.LAND.langUAGE
46.以下程序段中,不能正確賦字符串(編譯時(shí)系統(tǒng)會(huì)提示錯(cuò)誤)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
47.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點(diǎn)的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點(diǎn),指針變量s總是作為頭指針指向鏈表的第一個(gè)結(jié)點(diǎn)。若有以下程序段:q=s;s=s->next;p=s;while(p->next)p=p->next;p->next=q;q->next=NULL;該程序段實(shí)現(xiàn)的功能是()。
A.首結(jié)點(diǎn)成為尾結(jié)點(diǎn)B.尾結(jié)點(diǎn)成為首結(jié)點(diǎn)C.刪除首結(jié)點(diǎn)D.刪除尾結(jié)點(diǎn)
48.在位運(yùn)算中,操作數(shù)每左移兩位,其結(jié)果相當(dāng)于()。
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以4D.操作數(shù)乘以4
49.下面軟件中,屬中應(yīng)用軟件的是()
A.UnixB.人事管理系統(tǒng)C.數(shù)據(jù)庫管理理系統(tǒng)D.DOS
50.n個(gè)頂點(diǎn)的連通圖中邊的條數(shù)至少為______。A.A.0B.1C.n-1D.n
51.對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
52.若有定義:inta[2][3];,以下選項(xiàng)中對a數(shù)組元素正確引用的是A.a[2][!1]B.a[2][3]C.a[0][3]D.a[1>2][!1]
53.有以下程序:#include<stdio.h>charfun(charx,chary){if(x<y)returnx;returny;}main(){inta='9',b='8',c='7';printf("%c\n",fun(fun(a,b),fun(b,c)));}程序的執(zhí)行結(jié)果是()。
A.函數(shù)調(diào)用出錯(cuò)B.8C.9D.7
54.下列描述說明正確的是()
A.定義結(jié)構(gòu)體時(shí),它的每個(gè)成員的數(shù)據(jù)類型可以不同
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是結(jié)構(gòu)體本身
D.結(jié)構(gòu)體定義時(shí)各成員項(xiàng)之間可用分號(hào)也可用逗號(hào)隔開
55.以下程序的輸出結(jié)果是______。intd=1;fun(intp){staticintd=5;d+=p;printf("%d",d);return(d);}main(){inta=3;printf("%d\n",fun(a+fun(d)));}
A.699B.669C.61515D.6615
56.下面四個(gè)選項(xiàng)中,均是不合法的用戶標(biāo)識(shí)符的選項(xiàng)是()。
A.AP_0doB.floatla0_AC.b-agotointD._123tempint
57.以下程序執(zhí)行后sum的值是()。
A.15
B.14
C.不確定
D.0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}
58.有以下程序:voidswap(char*x,char*y){cbart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。
A.123,abcB.abc,123C.1bc,a23D.321,cba
59.下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?)。A.對象B.繼承C.類D.過程調(diào)用
60.設(shè)變量a、b、c、d和y都己正確定義并賦值。若有下列if語句
if(a<b)
if(c==d)y=0;
elsey=1;
該語句所表示的含義是()。
A.
B.
C.
D.
四、選擇題(20題)61.
有以下程序
#include<stdi0.h>
voidfun(intn,int*p)
(intf1,f2;
if(n==1||n==2)*p=1;
else
{fun(n-1,&f1);fun(n-2,&f2);
*p=f1+f2;
}
}
main
{ints;
fun(3,&s);printf("%d",s);
}
程序的運(yùn)行結(jié)果是()。
A.2B.3C.4D.5
62.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。A.A.(x>=1)&&(x<=10)&&(x>=100)&&(X<=110)B.(x>=1)
C.((x>=1)&&(x<=10))||((x>=100)&&(x<=110))
D.(x>=1)||(x<=10)&&(x>=100)||(x<=110)
63.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.33B.197C.143D.28
64.有如下嵌套的語句
65.下列函數(shù)的功能是()。
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進(jìn)行比較
D.檢查a和b所指字符串中是否有’\0
66.以下敘述中錯(cuò)誤的是()。
A.改變函數(shù)形參的值,不會(huì)改變對應(yīng)實(shí)參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個(gè)整數(shù)作為地址值
D.當(dāng)在程序的開頭包含文件stdi0.h時(shí),可以給指針變量賦NULL
67.有以下程序:
運(yùn)行時(shí),若輸入123450<回車>,則輸出結(jié)果是()。
A.6566456
B.66656
C.66666
D.6666656
68.以下不合法的字符常量是()。
69.
70.
有以下程序:
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
71.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0987654321
B.4321098765
C.5678901234
D.0987651234
72.有以下程序
#include<stdio.h>
voidfun(ints[])
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{
intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)
printf("%d",a[k]);
}
程序的運(yùn)行結(jié)果是
A.34756B.23445
C.35745D.12345
73.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
74.以下敘述中錯(cuò)誤的是()。
A)對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B)數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變
C)當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越界的出錯(cuò)信息”
D)可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)
75.
76.
77.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
78.若有以下程序段:
輸出結(jié)果是()。
A.2B.4C.8D.16
79.
80.
下列程序的輸出結(jié)果是()。
intfl(intx,inty){returnx>y?x:y;)
intf2(intx,inty){returnx>y?y:x;}
main
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:判斷一個(gè)整數(shù)m是否是素?cái)?shù),若是返回1,否則返回0。在main()函數(shù)中,若proc()返回1,則輸出″YES″;若proc()返回0,則輸出″NO″!
請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main)函數(shù),不得增行或刪行,也不得,t更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,函數(shù)fmi()的功能是將a、b中的兩個(gè)正整數(shù)合并成一個(gè)新的整數(shù)存放在c中。合并的方式是將a中的十位和個(gè)位數(shù)依次放在變量c的十位和千位上,b中的十位和個(gè)位數(shù)依次放在變量c的個(gè)位和百位上。例如,a=45,b=12,調(diào)用該函數(shù)后,c=5241。注意:部分源程序在文件prog1.c中。請勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:
參考答案
1.A由于a==l和a!=1兩者互斥,即總有一個(gè)為真,因此二者的或也必定為真。
2.D在C語言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類型。整型常量和實(shí)型常量又稱數(shù)值型常量。基本整型常量只能用數(shù)字表示,不帶小數(shù)點(diǎn),例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個(gè)字母l(L的小寫)或L;實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,例如3.14159、-2.71828、0.0等;選項(xiàng)A中字母o不符合要求,選頂B中超出八進(jìn)制的范圍,選項(xiàng)C中e后面的不為整數(shù),因此選頂D是正確的。
3.B
4.A解析:本題考核的知識(shí)點(diǎn)是一維數(shù)組的定義,初始化和數(shù)組中元素的引用。函數(shù)f()的作用是形參a為偶數(shù)的時(shí)候返回0,主函數(shù)中首先定義了一個(gè)長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、a[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6.其他沒有賦值的數(shù)組元素將自動(dòng)賦值為0。for循環(huán)中,當(dāng)s[1]不為偶數(shù)的時(shí),將s[i]相加,即當(dāng)i=3時(shí),s[i]=2為偶數(shù),退出循環(huán),此時(shí)d的值為d=s101+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
5.C該程序中int8pl=&a,+p2=&b,4P=&c;指定義三個(gè)指針變量,并賦值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;該條語句是給P所指的存儲(chǔ)單元c賦值,就是pl所指的存儲(chǔ)單元的值,即a的值,與p2所指的存儲(chǔ)單元b的值相乘,也就是c=a+b,等價(jià)于c=1·3=3;因此C選項(xiàng)正確?!?/p>
6.C
7.A選項(xiàng)A中,若條件“x>y”為真,輸出“x>y”;若條件“x<y”為真,輸出“x<y”;若條件“x>=y”為真,輸出“x=y”。選項(xiàng)A錯(cuò)誤,其他選項(xiàng)都正確。故本題答案為A選項(xiàng)。
8.B解析:條件運(yùn)算符要求有3個(gè)操作對象,稱三目(元)運(yùn)算符,它是C語言中惟一的一個(gè)三目運(yùn)算符。條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3其求解順序是:先求解表達(dá)式1,若為非O(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值。若表達(dá)式1的值為0(假),則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。并且注意++、--的用法。
9.A通過指針變量存取某個(gè)變量值的方式稱為“間接存取”方式,選項(xiàng)A錯(cuò)誤;頭文件stdio.h中定義了NULL,在程序的開頭包含stdio.h后,可以給指針變量賦NULL值,表示一個(gè)空指針,選項(xiàng)B正確;將一個(gè)指針變量中的值賦給另一個(gè)指針變量,這兩個(gè)指針變量指向同一地址,選項(xiàng)C正確;C語言中函數(shù)返回值的類型可以是簡單的數(shù)據(jù)類型,也可以是指針類型,選項(xiàng)D正確。故本題答案為A選項(xiàng)。
10.A[解析]本題中第一次調(diào)用為fum(8.fn(5.6)),因?yàn)閒un(5.6)返回值為5.所以第二次調(diào)用為fn(8.5)=6.所以選擇A)。
11.B
12.D考查if循環(huán)語句。if(表達(dá)式),其中表達(dá)式是一個(gè)條件,條件中可以是任意的合法的數(shù)值。
13.A文件指針實(shí)際上是指向一個(gè)結(jié)構(gòu)體類型的指針。這個(gè)結(jié)構(gòu)體中包含緩沖區(qū)的地址、在緩沖區(qū)中當(dāng)前存取字符的位置、對文件是“讀”還是“寫”、是否出錯(cuò)、是否已經(jīng)遇到文件結(jié)束標(biāo)識(shí)等信息。選項(xiàng)A正確,選項(xiàng)B、C錯(cuò)誤;fscanf函數(shù)只能從文本文件中輸入數(shù)據(jù)到內(nèi)存,選項(xiàng)D錯(cuò)誤。故本題答案為A選項(xiàng)。
14.D
15.B
16.B本題考查函數(shù)調(diào)用時(shí)的參數(shù)傳遞。在執(zhí)行函數(shù)func時(shí),由于全局定義了一個(gè)變量b,所以在函數(shù)體中執(zhí)行b=2+1=3,最終t=2+3=5。
17.B
18.A由函數(shù)fun(int*a,intn)中語句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。
19.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。
20.A
21.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實(shí)現(xiàn)過程是將相鄰兩個(gè)字符進(jìn)行比較,如果當(dāng)前字符小于下一個(gè)字符;則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填;'%s',str。
22.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。第6層的結(jié)點(diǎn)數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結(jié)點(diǎn)最多數(shù)”和“某一層的結(jié)點(diǎn)最多數(shù)”。前者的計(jì)算是深度為m的二叉樹最多有2m-1個(gè)結(jié)點(diǎn)。
23.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d,格式輸出的,即輸出其相應(yīng)ASCII碼值68。
24.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個(gè)新的元素;退棧是指取出棧頂元素并賦值給一個(gè)變量;讀棧頂元素是將棧頂元素賦值給一個(gè)指定的變量,不刪除棧頂元素。
25.11解析:因?yàn)樵跅l件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。
26.*(p+5)或p[5]*(p+5)或p[5]
27.16
28.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
29.1+a1-a1+a,1-a解析:考查條件運(yùn)算符的使用。因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對值之和,所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則;當(dāng)a>=0時(shí),絕對值取本身,當(dāng)a<0時(shí),絕對值取相反數(shù),再結(jié)合條件運(yùn)算符的計(jì)算規(guī)則,可得到本題的答案為a>=0。
30.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。
31.結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法解析:結(jié)構(gòu)化分析方法主要用于系統(tǒng)分析階段;結(jié)構(gòu)化設(shè)計(jì)方法主要用于系統(tǒng)設(shè)計(jì)階段;結(jié)構(gòu)化程序設(shè)計(jì)方法主要用于編碼階段??尚行匝芯繉儆谙到y(tǒng)分析階段,因此,可行性研究階段采用的是結(jié)構(gòu)化分析方法。
32.8181解析:將S(i+j)展開來有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。
33.概念概念
34.99解析:本題考查宏定義與三目運(yùn)算符的綜合應(yīng)用。宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則b+1的值為整個(gè)表達(dá)式的值(應(yīng)注意后面的加1)。
35.查詢查詢解析:關(guān)系模型的數(shù)據(jù)操作即是建立在關(guān)系上的數(shù)據(jù)操作,一般有查詢、增加、刪除和修改四種操作。數(shù)據(jù)查詢是指用戶可以查詢關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個(gè)關(guān)系內(nèi)的查詢以及多個(gè)關(guān)系間的查詢。數(shù)據(jù)刪除的基本單位是一個(gè)關(guān)系內(nèi)的元組,它的功能是將指定關(guān)系內(nèi)的指定元組刪除。數(shù)據(jù)增加僅對一個(gè)關(guān)系而言,在指定關(guān)系中插入一個(gè)或多個(gè)元組。數(shù)據(jù)修改是在一個(gè)關(guān)系中修改指定的元組和屬性。
36.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結(jié)果為:B66。
37.4545解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過遍的從前往后掃描和遍的從后往前掃描,需要比較次數(shù)為。
38.p!=NULLp->nextp!=NULL,p->next解析:考查了單鏈表的相關(guān)知識(shí)。NULL的ASCII碼的值和'\\0'的ASCII碼的值相等,條件到NULL停止循環(huán)。把下一個(gè)節(jié)點(diǎn)的地址賦給p,這樣循環(huán),節(jié)點(diǎn)可以依次向后取值。
39.5656解析:本題中a,b,c,d是實(shí)參,x,y,cp,dp是形參。C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。在調(diào)用函數(shù)時(shí),給形參分配存儲(chǔ)單元,并將實(shí)參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。因此,程序的輸出結(jié)果是56。
40.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。
41.A解析:函數(shù)strcmp的功能是比較字符串s1和s2,如果s1>s2,則返回個(gè)正數(shù):如果s1<s2,則返回負(fù)數(shù),否則返回零。由于本題中小寫字母b的ASCII碼值大于大寫字母B,故s1>s2,所以函數(shù)的值為正數(shù)。
42.D解析:將有6個(gè)元素的整型數(shù)組分兩行輸出到一個(gè)文件中,因?yàn)檩敵龅亩际菙?shù)字并且每行都沒有分隔符,所以當(dāng)再對其進(jìn)行讀取操作時(shí),每一行都會(huì)被認(rèn)為是一個(gè)完整的數(shù),而換行符則作為它們的分隔符。
43.C
44.A解析:本題的考查點(diǎn)是通過指針引用數(shù)組元素。程序中沒有給q分配存儲(chǔ)單元,只是給它賦了一個(gè)NULL,所以程序的運(yùn)行結(jié)果是:611NULLpointerassignment,也就是運(yùn)行后報(bào)錯(cuò)。
45.C解析:本段程序的作用是輸出字符串“l(fā)anuage”中字母u之前的字符,并將其轉(zhuǎn)化為大寫字母。注意:如果一個(gè)字符數(shù)組用來作為字符串使用,那么在定義該字符數(shù)組時(shí),數(shù)組的大小就應(yīng)該比它將要實(shí)際存放的最長字符多一個(gè)元素,以存放‘\\0’。
46.C解析:選項(xiàng)A中定義了一個(gè)字符型數(shù)組并賦初值,故選項(xiàng)A正確;選項(xiàng)B定義了一個(gè)字符型數(shù)組t并初始化,然后定義了一個(gè)指針變量s并讓它指向t,故選項(xiàng)B正確;選項(xiàng)C先定義?一個(gè)長度為10的字符型數(shù)組,然后在給它賦值,這時(shí)應(yīng)該分別給數(shù)組中的每個(gè)元素賦值,故選項(xiàng)C不正確;選項(xiàng)D中先定義了一個(gè)長度為10的字符型數(shù)組s,然后通過字符串拷貝函數(shù)將字符串“abedefs”賦值給它,選項(xiàng)D正確。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
47.A解析:因?yàn)閯傞_始時(shí)s指向a結(jié)點(diǎn)(鏈表頭),所以語句q=s;使q也指向a結(jié)點(diǎn)。s=s->next;語句使s指向a的下一個(gè)結(jié)點(diǎn)b。p=s;語句使p也指向b結(jié)點(diǎn)。接下來是一個(gè)while循環(huán),循環(huán)條件為p->next,即當(dāng)p沒有指向鏈表尾時(shí)執(zhí)行循環(huán)體p=p->next;讓p指向下一個(gè)結(jié)點(diǎn),所以當(dāng)循環(huán)結(jié)束時(shí),p指向鏈表尾(c結(jié)點(diǎn))。執(zhí)行到此時(shí),s、p、q分別指向的結(jié)點(diǎn)是b、c、a。然后執(zhí)行p->next=q;,使c結(jié)點(diǎn)的后續(xù)指針指向了a結(jié)點(diǎn)。最后執(zhí)行q->next=NULL;,使a結(jié)點(diǎn)的后續(xù)指針為NULL。由此可見,該程序段實(shí)現(xiàn)了將a結(jié)點(diǎn)移動(dòng)到c結(jié)點(diǎn)之后,即首結(jié)點(diǎn)成為尾結(jié)點(diǎn)。故應(yīng)該選擇A。
48.D解析:本題主要考查左移、右移對數(shù)據(jù)值的影響,左移n位相當(dāng)于乘以2的n次冪,右移n位相當(dāng)于除以2的n次冪。
49.B
50.C解析:在無向圖(邊沒有方向性的圖)中,若從頂點(diǎn)vi到vj有路徑,則稱vi和vj是連通的,若該圖中仟意兩個(gè)頂點(diǎn)都是連通的,則稱該圖為連通圖。
51.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。
52.D解析:a是一個(gè)2行3列的二維數(shù)組,行下標(biāo)和列下標(biāo)都是從0開始的,數(shù)組中的元素為a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],行下標(biāo)最大值為1,列下標(biāo)最大值為2,因此選項(xiàng)A、B、C都是錯(cuò)誤的引用。計(jì)算選項(xiàng)D中數(shù)組元素的下標(biāo)后得a[0][0],為正確的引用。
53.D解析:函數(shù)fun的作用是返回較小的字符。在main函數(shù)中,fun(a,b)及fun(b,c)的值作為fun函數(shù)新的參數(shù),返回a,b,c的較小值,結(jié)果為7。
54.A
55.C解析:本題要注意靜態(tài)變量d。第1次執(zhí)行fun(d),即fun(1),在函數(shù)fun里對靜態(tài)變量賦初值5,得到d=d+p=5+1=6并輸出,返回6;第2次執(zhí)行fun(a+fun(d)),即fun(3+6)=fun(9),在函數(shù)fun中直接執(zhí)行d=d+p=6+9=15并輸出,然后返回15再一次輸出。
56.C解析:C語言規(guī)定的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,第一個(gè)字符必須為字母或下劃線,并且不能使用C語言中的關(guān)鍵字作為標(biāo)識(shí)符。選項(xiàng)C)中g(shù)oto和int是關(guān)鍵字,b-a中'-'不是組成標(biāo)識(shí)符的3種字符之一;選項(xiàng)D)中int是關(guān)鍵字,所以,均是不合法用戶標(biāo)識(shí)符的選項(xiàng)是C)。
57.C解析:C語言中,如果對定義的變量沒有賦初值,那么在后面使用時(shí),變量的值是不確定的。所以,本程序中,沒有對sum賦初值,它的值不確定。在執(zhí)行了for循環(huán)語句后,sum的值也不確定的,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
58.C解析:函數(shù)swap()實(shí)現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。
59.D[答案]D
[考點(diǎn)]軟件工程基礎(chǔ)
[評(píng)析]
面向?qū)ο?對象+類+繼承+通過消息的通信
對象:一組屬性及其上的操作的封裝體
類:一組有相同屬性和操作的對象的集合
繼承:一個(gè)類為另一個(gè)類上的擴(kuò)充的方式,子類繼承父類,主要目的是代碼復(fù)用
消息:對象間通信的手段
D是結(jié)構(gòu)化程序設(shè)計(jì)或過程式(函數(shù)式)語言中的,一般的面向?qū)ο蟪绦蛟O(shè)計(jì)語言兼容這種方式,但不是其特征,故最佳選項(xiàng)為D
60.C解析:語句if(c==D)y=0;elsey=1;是if(a<B)語句的一個(gè)子句。所以整個(gè)C語句表達(dá)式的意思是:在、a<b的情況下,如果c=d則y=0,否則y==1。所以,選項(xiàng)C)為正確答案。
61.A
\n在函數(shù)fun中對參數(shù)n的值進(jìn)行判斷,如果其值等于1或2,則*p=1,否則,函數(shù)fun進(jìn)行遞歸調(diào)用fun(n.1,&f1);fun(13.2,&f2);*p=n+f2;在主函數(shù)調(diào)用fun函數(shù)時(shí)傳遞給參數(shù)n的值為3,fun函數(shù)又遞歸用了兩次自身fun(2,&n);fun(1,&f1);所以n和f2的值都為1,通過指針P的引用,變量S的值為2。
\n
62.C本題考查邏輯與(&&)和邏輯或(||)運(yùn)算符的使用。x值在[1,10]之間,C語言中可以寫成“(x>=1)&&(x<=10)”;x值在[100,110]之間,C語言表達(dá)式應(yīng)寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]滿足任意條件就可以,所以是邏輯或的關(guān)系,因此只要將前兩個(gè)表達(dá)式用邏輯或運(yùn)算符連接起來即可,所以最后的表達(dá)式:((x>=1)&&(x<=10))||((x>=100)&&(x<=110))。
63.C本題考查帶參數(shù)的宏定義,s為帶參數(shù)的宏定義,運(yùn)行S(k+j)為4*(k+j)*k+j+1=143,選項(xiàng)C正確。
64.Aif\r\nelse語句和“?:”可以互換,?前語句相當(dāng)于i垢括號(hào)內(nèi)容,?后語句相當(dāng)于i垢的執(zhí)行語句,冒號(hào)后語句相當(dāng)于else后語句,綜合以上可以看出A)符合題意。
65.A表達(dá)式*b=*a是將a所指的字符賦給b所指的空間,然后,指針a和b依次后移,直到到達(dá)指針a所指字符串的結(jié)尾。
66.C指針變量的值只能是存儲(chǔ)單元地址,而不能是一個(gè)整數(shù),故選項(xiàng)C錯(cuò)誤。
67.Aswitch語句執(zhí)行完一個(gè)case后面的語句后,流程控制轉(zhuǎn)移到下一個(gè)case語句繼續(xù)執(zhí)行,遇到break會(huì)跳出本次循環(huán)。本題中輸入l時(shí)會(huì)輸出65,輸入2時(shí)會(huì)輸出6,輸入3時(shí)會(huì)輸出64,輸入4時(shí)會(huì)輸出5,輸入5時(shí)會(huì)輸出6,在輸入0時(shí)不滿足循環(huán)條件,程序執(zhí)行結(jié)束。
68.A本題考查的知識(shí)點(diǎn)是字符常量中的轉(zhuǎn)義字符。轉(zhuǎn)義字符是以一個(gè)“\”開頭的字符序列,它只代表一個(gè)字符。在選項(xiàng)A)中,“\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度商場餐飲品牌授權(quán)許可合同
- 服裝鞋帽居間合同模板
- 眼鏡店改造維修合同
- 居家裝修設(shè)計(jì)合同模板范本
- 二零二五年度企業(yè)核心辦公室文員職責(zé)合同
- 高端半導(dǎo)體制造廠房租賃合同樣本(二零二五年度)
- 小型機(jī)動(dòng)車輛抵押合同年
- 水產(chǎn)養(yǎng)殖管理操作手冊
- 高分子材料與工程塑料作業(yè)指導(dǎo)書
- 移動(dòng)應(yīng)用開發(fā)實(shí)戰(zhàn)作業(yè)指導(dǎo)書
- 患者發(fā)生輸液反應(yīng)的應(yīng)急預(yù)案
- 銷售團(tuán)隊(duì)組建和管理課件
- 中國內(nèi)部審計(jì)準(zhǔn)則及指南
- 銀行個(gè)人業(yè)務(wù)培訓(xùn)課件
- 2024年ISTQB認(rèn)證筆試歷年真題薈萃含答案
- tpu顆粒生產(chǎn)工藝
- 《體檢中心培訓(xùn)》課件
- 《跟著音樂去旅行》課件
- 初中數(shù)學(xué)深度學(xué)習(xí)與核心素養(yǎng)探討
- 特殊教育導(dǎo)論 課件 第1-6章 特殊教育的基本概念-智力異常兒童的教育
- 辭職申請表-中英文模板
評(píng)論
0/150
提交評(píng)論