版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022年山西省呂梁市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。
A.控制流B.加工C.數(shù)據(jù)存儲(chǔ)D.源和潭
2.若有定義int?x,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是()。A.(x-y<0|x-y>0)B.(x-y<0)C.(x-y>0).D.(x-y==0)
3.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。
A.2E3——整型B.2.0E3——實(shí)型C.‘\025’——字符串D.“a”——字符型
4.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
5.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當(dāng)運(yùn)行程序時(shí),輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
6.
7.下列敘述中錯(cuò)誤的是()。
A.可以給指針變量賦一個(gè)整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會(huì)改變對(duì)應(yīng)實(shí)參的值
D.當(dāng)程序的開頭包含頭文件stdio.h時(shí),可以給指針變量賦NULL值
8.有以下函數(shù):
此函數(shù)的功能是()。A.比較p和q所指字符串的大小
B.計(jì)算p和q所指字符串的長度差
C.將q所指字符串連接到P所指字符串后面
D.將q所指字符串復(fù)制到p所指字符串中
9.下列描述錯(cuò)誤的是()。
A.繼承分為多重繼承和單繼承
B.對(duì)象之問的通信靠傳遞消息來實(shí)現(xiàn)
C.在外面看不到對(duì)象的內(nèi)部特征是基于對(duì)象的“模塊獨(dú)立性好”這個(gè)特征
D.類是具有共同屬性、共同方法的對(duì)象的集合
10.算法能正確地實(shí)現(xiàn)預(yù)定功能的特性稱為算法的()。
A.正確性B.易讀性C.健壯性D.高效率
11.若d為double型變量,則表達(dá)式d=1,d+5,d++的值是()。
A.1B.6.0C.2.0D.1.0
12.以下程序的輸出結(jié)果是()。main{intx=0.5;charz=‘a(chǎn)’;printf(“d\n”,(x&1)&&(z<‘z’));}A.0B.1C.2D.3
13.當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABC,則輸出結(jié)罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789
14.有以下程序#include<stdio.h>voidfun(intx){if(x/2>1)fun(x/2);printf("%d",x);}main{fun(7);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.137B.731C.73D.37
15.
16.以下程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
17.在“文件包含,預(yù)處理語句的使用形式中,當(dāng)#include后面的文件名用(雙引號(hào))括時(shí),尋找被包含文件的方式是()。
A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄
B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索
C.僅僅搜索源程序所在目錄
D.僅僅搜索當(dāng)前目錄
18.設(shè)一棵二叉樹有3個(gè)葉子節(jié)點(diǎn),有8個(gè)度為1的節(jié)點(diǎn),則該二叉樹中總的節(jié)點(diǎn)數(shù)為()
A.12B.13C.14D.15E.16F.17
19.
20.
二、2.填空題(20題)21.已有定義:double*p;,請(qǐng)寫出完整的語句,利用malloc函數(shù)使p指向一個(gè)雙精度型的動(dòng)態(tài)存儲(chǔ)單元______。
22.下面的程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文件中,請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
FILE*fp;
main()
{charch;
if((fp=fopen(【】))==NULL)exit(0);
while((ch=getchar())!='@')fputc(ch,fp);
fclose(fp);
}
23.數(shù)據(jù)庫系統(tǒng)的三級(jí)模式分別為______模式、內(nèi)部級(jí)模式與外部級(jí)模式。
24.設(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)行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
25.設(shè)有下列宏定義:
#defineA2
#defineB(A+3)
則執(zhí)行賦值語句"k=B*20;"(k為int型變量)后,k的值是______。
26.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?/p>
voidfunc(intx,inty,【】z)
{*z=x+y;}
27.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
28.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和______三種。
29.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
30.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>。則輸出結(jié)果是______。
#include<stdio,h>
main()
{
chara,b;
a=geCchar();scanf("%d“,&b);
a=a-'A'+‘0';b=b*2;
printf('%c%c\n",a,b);
}
31.以下程序運(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;
pfintf("%d\n",x);
}
32.C語言用于結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)是______、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
33.以下程序運(yùn)行時(shí)若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
34.黑盒測(cè)試是從【】觀點(diǎn)的測(cè)試。
35.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運(yùn)行時(shí)輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
36.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫適當(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);}
37.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”的C語言表達(dá)式是______。
38.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結(jié)果是【】。
39.以下程序的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個(gè)。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個(gè)數(shù)。
例如,若一維數(shù)組中的數(shù)據(jù)是:
2223445666677899101010
刪除后,數(shù)組中的內(nèi)容應(yīng)該是:
2345678910。
請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
#defineN80
intfun(inta[],intn)
{inti,j=1;
for(i=1;i<n;i++)
if(a[j-1]【】a[i])
a[j++]=a[i];
【】;
}
main()
{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("Theoriginaldata:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\nThedataafterdeleted:\n");
for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");
}
40.以下程序的輸出結(jié)果是______。
main()
{inta[10]={10,20,30,40,50,60,70,80,90,100},*p;
p=a+2;printf("%d\n',(p+2)[3]);
}
三、1.選擇題(20題)41.以下程序的輸出結(jié)果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f();printf("%d\n",a);
A.20B.24C.25D.15
42.下面程序在屏幕上的輸出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc
43.以下不能定義為用戶標(biāo)識(shí)符的是()
A.MainB._0C._intD.sizeof
44.已知大寫字母A的ASCII碼值是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是A.字符AB.字符aC.字符eD.非法的常量
45.以下程序的輸出結(jié)果是
main()
{inta,i;a=0;
for(i=1;i<5;i++)
{switch(i)
{case0:
case3:a+=2;
case1:
case2:a+=3;
default:a+=5;}
}printf("%d\n",a);}
A.31B.13C.10D.20
46.數(shù)據(jù)處理的最小單位是()。
A.數(shù)據(jù)B.數(shù)據(jù)元素C.數(shù)據(jù)項(xiàng)D.數(shù)據(jù)結(jié)構(gòu)
47.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個(gè)元素都有一個(gè)直接前件和直接后件
B.線性表中至少要有一個(gè)元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件
48.棧和隊(duì)列的共同點(diǎn)是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同特點(diǎn)
49.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()
A.為讀/寫打開一個(gè)文本文件
B.為輸出打開一個(gè)文本文件
C.為讀/寫建立一個(gè)新的文本文件
D.為讀/寫建立一個(gè)新的二進(jìn)制文件
50.下列程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}
A.are&youB.youC.areD.&
51.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是______。
A.free(q);p->next=q->next;
B.(*p).next=(*q).next;free(q);
C.q=(*q).next;(*p).next=q;free(q);
D.q=q->next;p->next=q;p=p->next;free(p);
52.當(dāng)執(zhí)行下面的語句定義一維數(shù)組a后,此數(shù)組的所有元素為()inta[10];
A.a[1],a[2],a[3],a[4],a[5],a[6],a[8],a[9],a[10],a[10]
B.a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]
C.a[0],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]
D.a[1],a[2],a[3],a[4],a[5],a[9],a[7],a[8],a[9],a[10],a[11]
53.有以下程序段
charch;intk;
ch=′a′;k=12;
printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);
已知字符a的ASCII碼值為97,則執(zhí)行上述程序段后輸出結(jié)果是
A.因變量類型與格式描述符的類型不匹配輸出無定值
B.輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值
C.a,97,12k=12
D.a,97,k=12
54.設(shè)有如下定義,則執(zhí)行表達(dá)式(nFa>b)&&(n=c>d)后,n的值為______。inta=1,b=2,c=3,d=4,m=2,n=2;
A.1B.2C.3D.0
55.執(zhí)行以下程序段后,m的值為______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));
A.15B.14C.13D.12
56.下列條件語句中,功能與其他語句不同的是A.if(a)printf("%d\n",x);elseprintf("%d\n",y);
B.if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);
D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
57.假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是()
A.free(q);p->Next=q->next;
B.(*p).next=(*q).nexy;free(q);
C.q=(*q).next;(*p).next=q;free(q);
D.q=q->next;p->next=q;p=p->next;free(p);
58.以下正確的程序段是
A.cgarstr[20];scanf("%s",&str);
B.char*p;scanf("%s",p);
C.charstr[20];scanf("%s",&str[2])
D.charstr[20],*p=str;scanf("%s",p[2]);
59.設(shè)有定義:inta,*pa=&a;以下scanf語句中能正確為變量a讀入數(shù)據(jù)的是
A.scant("%d",pa);
B.scant("%d",a);
C.scanf("%d",&pa);
D.scanf("%d",*pa);
60.fprintf函數(shù)的一般調(diào)用方式是()
A.fprintf(格式字符串,文件指針,輸出表列);
B.fprintf(文件指針,格式字符串,輸出表列)
C.fprintf(文件指針,格式字符串,輸出表列);
D.fprintf(fp,格式字符串,輸出表列);
四、選擇題(20題)61.對(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)
62.
若有以下程序段,w和k都是整型變量:
┇
w=k:
LB:if(w==0)gotoLE;
W--:
printf("*")
gotoLB;
LE;
┇
則不能與上面程序段等價(jià)的循環(huán)語句是()。
A.for(w=k;w!=0;w--)printf("*");
B.for(w=k;w;--w)printf("*");
C.w=k;while(w--!=0)printf("*");
D.w=k:w++;do{w--;printf("*");}while(w!=0);
63.(49)按條件f對(duì)關(guān)系R進(jìn)行選擇,其關(guān)系代數(shù)表達(dá)式為()
A.R|X|R
B.R|X|Rf
C.бf(R)
D.∏f(R)
64.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
65.若想定義int型變量a,b,c,d并都賦值為1,以下寫法中錯(cuò)誤的是()。
A.inta=b=c=d=1;
B.inta=1,b=1,c=1,d=1;
C.inta,b,c,d;a=b=c=d=1;
D.inta,b,c,d=1;a=b=c=d;
66.
67.有以下程序
68.設(shè)有定義:
doublea[10],*s=a;
以下能夠代表數(shù)組元素a[3]的是()。
A.($s)[3]B.}(s+3)C.*s[3]D.}s+3
69.數(shù)據(jù)庫管理系統(tǒng)是()。
A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)
70.有以下程序
71.(46)面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.鼓勵(lì)開發(fā)者在軟件開發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考
72.若有定義語句:“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。A.1.9B.1C.2D.2.4
73.
有下列程序段:
intn,t=1,S=0;
scanf("%d",&n);
do{s=s+t;t=t-2;while(t!=n);
為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。
A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
74.
75.已知字符A的ASCⅡ代碼值是65,字符變量c1的直是A,c2的值是D。執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是()。
A.A,BB.A,68C.65,66D.65,68
76.
77.
若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。
main
{intid=50,a[]=(7,4,10,5,8};
for()
j+=a[i];
printf("%d",j-40);
}
A.i=1;i<4;++i
B.i=l;i<3;++i
C.i=4;i>2;i--
D.i=2;i<4;++i
78.
79.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
80.設(shè)有以下語句
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun()的功能是:求兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若num1和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸出的最大公約數(shù)為27。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc(),該函數(shù)的功能是:計(jì)算并輸出
例如,若主函數(shù)從鍵盤給n輸入10后,則輸出為S=104.478749。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。
試題程序:
參考答案
1.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭。
2.A條件表達(dá)式:x=表達(dá)式1:表達(dá)式2:表達(dá)式3的含義是:先求解表達(dá)式1.若為非0(真),則求解表達(dá)式2.將表達(dá)式2的值賦給x。若表達(dá)式1的值為0(假),則求解表達(dá)式3.將表達(dá)式3的值賦給x。在本題中與表達(dá)式1:(x-y)等價(jià)的是(x-y<0|x-y>0)。
3.B2E3是實(shí)型常量的指數(shù)形式,選項(xiàng)A錯(cuò)誤;2.0E3是實(shí)型常量的指數(shù)形式,選項(xiàng)B正確;‘\\025’是八進(jìn)制表示的轉(zhuǎn)義字符,選項(xiàng)C錯(cuò)誤;“a”是雙引號(hào)標(biāo)注的字符串常量,選項(xiàng)D錯(cuò)誤。故本題答案為B選項(xiàng)。
4.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元。在考慮內(nèi)存不定的情況下,最好使用全局變量。
5.A在本題中,程序首先定義一個(gè)返回類型為整型的函數(shù)fun,該函數(shù)帶有一個(gè)指針型的形參變量str,從主函數(shù)中對(duì)其調(diào)用時(shí)傳遞的參數(shù)我們可以知道,該指針指向的是一個(gè)數(shù)組,在該函數(shù)體中,首先定義兩個(gè)整型變量,然后執(zhí)行循環(huán),循環(huán)變量i的初始值為0,循環(huán)結(jié)束的條件是str[i]!=’\\0’,表示取到的數(shù)組元素是字符串結(jié)束標(biāo)識(shí),即字符串中的字符被處理完,在循環(huán)體中,首先執(zhí)行條件判斷語句if(str[i]!=’’),如果結(jié)果為真,說明取到的當(dāng)前字符不是空字符,這時(shí)執(zhí)行str[j++]=str[i],即將非空格字符保存到數(shù)組中;如果為假,說明取到了空格字符,此時(shí)不保存,而接著執(zhí)行下次循環(huán)跳過空格字符。循環(huán)結(jié)束后執(zhí)行str[j]=’\\0’;,即保存字符結(jié)束標(biāo)識(shí)符,用來標(biāo)識(shí)字符串結(jié)束。通過上面的這些分析,我們可以知道函數(shù)fun的作用是去掉字符數(shù)組中的空格字符。
在主函數(shù)中,首先定義了一個(gè)大小為81的字符數(shù)組,然后調(diào)用函數(shù)clrscr()清除輸入文本窗口,接著輸出一條提示語句,執(zhí)行g(shù)ets(str);語句,該語句的作用是從鍵盤輸入一個(gè)字符串到str數(shù)組,碰到換行符結(jié)束。然后調(diào)用函數(shù)fun,其實(shí)參為str。通過上面對(duì)函數(shù)fun作用的分析我們可以知道,調(diào)用函數(shù)后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。
程序最后執(zhí)行輸出語句,輸出字符數(shù)組str中的字符串,因此,程序最終的輸出結(jié)果是asdafaaz67,本題答案選A。
6.D
7.A不能將一個(gè)整數(shù)直接賦給指針變量作為地址值,A選項(xiàng)錯(cuò)誤。函數(shù)的返回值可以是地址,即指針。函數(shù)調(diào)用中形參值的變化不會(huì)傳遞給實(shí)參。故本題答案為A選項(xiàng)。
8.A函數(shù)fun接收兩個(gè)整型指針變量作為參數(shù),通過while循環(huán),比較p和q對(duì)應(yīng)位上的各個(gè)字符,如果字符相同,繼續(xù)向后比較;否則循環(huán)結(jié)束,返回第1次對(duì)應(yīng)不同字符的ASCII差值。所以函數(shù)fun是對(duì)p和q指向的字符串進(jìn)行比較,其大小是按第1個(gè)對(duì)應(yīng)位置上不同字符的ASCII值來比較的。本題答案為A選項(xiàng)。
9.C對(duì)象的封裝性是指從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,其處理能力的實(shí)行和內(nèi)部狀態(tài)對(duì)外是不可見的,是隱蔽的。
10.A
11.D
12.B(x&1)&&(z<‘z’)=(0.5&1)&&(‘a(chǎn)’<‘z’)=1&&1=1,故選擇B選項(xiàng)。
13.A當(dāng)執(zhí)行g(shù)ets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,"6789"),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項(xiàng)。
14.D本程序主要考查遞歸函數(shù)。fun(7),首先將參數(shù)代入函數(shù),因?yàn)?7/2)>1,所以執(zhí)行f(3),依此類推直到f(1.5),(1.5/2)<1,所以執(zhí)行打印函數(shù),此時(shí)X值為3,然后退出f(1.5),返回f(3),打印x值即7。所以選D。
15.D
16.D解析:本題考查帶參數(shù)的宏調(diào)用。a/=SQR(k+m)/SQR(k+m)進(jìn)行宏替換后得:a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1)=10/(2+2+0+2+1)=10/7/1。
17.B#include”文件名”,預(yù)處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標(biāo)準(zhǔn)目錄搜索。
18.B
19.B
20.A
21.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個(gè)參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
22.bi.dat"w"或"bi.dat""w+"bi.dat,'w'或'bi.dat','w+'解析:根據(jù)fopen函數(shù)的調(diào)用方式fopen(文件名,使用文件方式)和題意可得結(jié)果。
23.概念(或概念級(jí))概念(或概念級(jí))
24.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較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語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
25.100100解析:本題考查帶參數(shù)的宏定義及相關(guān)運(yùn)算。運(yùn)算過程為:k=B*20=(A+3)*20=(2+3)*20=100。
26.int*int*解析:從題中代碼可知:z應(yīng)該是一個(gè)整型指針,因此應(yīng)填int*。
27.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
28.關(guān)系模型關(guān)系模型
29.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個(gè)case標(biāo)號(hào)的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語句標(biāo)號(hào)作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。
30.1B1B解析:在C語古中,字符型變量可以看作整型變量來對(duì)待,與整型所不同的是字符型變量在內(nèi)存中只占1個(gè)字節(jié),而整型是2個(gè)字節(jié).字符型變量中所有的數(shù)值是它所表示字符的ASCII碼值.ASCII碼中的一些相關(guān)字符是順序排列的,如'0',的ASCII碼值為48,'1'為49以此類推一直到'9';'A'的ASCII碼值為65,'B'為66以此類推一直到'Z'。本題程序首先定義了兩個(gè)字符型變量a和b,然后分別使用getchar()和scanf()函數(shù)讀取輸入的字符'B'和十進(jìn)制整數(shù)33到a和b中,因?yàn)閍-'A'+'0'等于,'B'-'A'+'0'='1'+'0'='1',而b*2等于33*2=66'A'+1='B'。所以最終輸出的結(jié)果是:1B。
31.因?yàn)樵跅l件表達(dá)式(a<b)?a:b中,比較表達(dá)式a<b為真,所以x的值等于a的值等于1,后面兩個(gè)條件表達(dá)式中的比較表達(dá)式都為真,所以最終x的值等于1。\r\n\r\n
32.順序結(jié)構(gòu)順序結(jié)構(gòu)解析:結(jié)構(gòu)化程序有3種摹本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)(包括if語句和switch語句)和循環(huán)結(jié)構(gòu)(包括for語句、while語句、do…while語句)。
33.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個(gè)十進(jìn)制整數(shù),但只接受第一和第三個(gè)到函數(shù)的第二和第三個(gè)參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。
34.用戶用戶解析:黑盒測(cè)試又稱為功能測(cè)試,黑盒測(cè)試是把程序看作一個(gè)黑盒子,完全不考慮程序內(nèi)部的結(jié)構(gòu)和處理過程。測(cè)試者只考慮該程序輸入和輸出的關(guān)系,或只考慮程序的功能。黑盒測(cè)試是一種從用戶觀點(diǎn)出發(fā)的測(cè)試。
35.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
36.doublemax或externdoublemaxdoublemax或externdoublemax解析:本題中main()函數(shù)需要調(diào)用max()函數(shù),在main()之前就需要聲明函數(shù)max(),并且可以用extern說明符使變量的作用域擴(kuò)充到需要用到它的函數(shù),所以,填寫doublemax(或externdoublemax)。
37.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對(duì)值大于5”時(shí)值為“假”,即整數(shù)x的絕對(duì)值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
38.77解析:本題考查英文字母ASCII碼值的概念。字符參與運(yùn)算的值是其對(duì)應(yīng)的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。
39.!=returnj!=,returnj解析:本題程序的流程是:讓i,j都從1開始,其中j用于控制刪除后剩下的數(shù)中的下標(biāo),i用于搜索原數(shù)組中的元素。j始終是新數(shù)組已有元素中最后一個(gè)元素的下一個(gè)元素的下標(biāo),所以if()中的條件是a[j-1]!=a[i],其中a[j-1]就是新數(shù)組中的最后一個(gè)元素,若條件成立則表示出現(xiàn)了不同的值,所以a[i]要留到新數(shù)組中。注本題中i、j的初值都要從1開始,該算法只能用于數(shù)組已排序的題目中。
40.80。80。解析:p=a+2使指針p指向數(shù)組a的第三個(gè)元素,即a[2],(p+2)[3]使p再移動(dòng)5個(gè)單位,則指向了數(shù)組元素a[7],它的值為80。
41.D解析:函數(shù)f中變量i為靜態(tài)變量,函數(shù)f調(diào)用結(jié)束后變量i所占據(jù)的存儲(chǔ)單元不會(huì)釋放,而在主函數(shù)中f被調(diào)用5次,具體過程如下:
第1次調(diào)用f:s=s+i=1+0=1,i=i+1=1,主函數(shù)中a=a+f()=0+1=1
第2次調(diào)用f:s=s+i=1+1=2,i=i+1=2,主函數(shù)中a=a+f()=1+2=3
第3次調(diào)用f:s=s+i=1+2=3,i=i+1=3,主函數(shù)中a=a+f()=3+3=6
第4次調(diào)用f:s=s+i=1+3=4,i=i+1=4,主函數(shù)中a=a+f()=6+4=10
第5次調(diào)用f:s=s+i=1+4=5,i=i+4=5,主函數(shù)中a=a+f()=10+5=15
所以printf語句的輸出結(jié)果為15。
42.BC語言中允許使用一種特殊形式的字符常量,就是以一個(gè)“\\”開頭的字符序列,這樣的字符稱為“轉(zhuǎn)義字符”。常用的轉(zhuǎn)義字符有:\\n,換行;\\t,水平制表;\\b,退格;\\r,回車。
43.D解析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線,標(biāo)識(shí)符名不能與關(guān)鍵字重名。選項(xiàng)A)中Main與主函數(shù)名main不同,所以選項(xiàng)D)是非法的標(biāo)識(shí)符。
44.A本題考查的知識(shí)點(diǎn)是轉(zhuǎn)義字符。題目中的關(guān)鍵是八進(jìn)制101的十進(jìn)制是多少.八進(jìn)制的101轉(zhuǎn)換為十進(jìn)制為65,也就是字符A的ASCII。
45.A解析:本題考查用于多分支選擇的switch語句,其一般形式為:
switch(表達(dá)式)
{
case常量表達(dá)式1:語句1;
case常量表達(dá)式2:語句2;
…
case常量表達(dá)式n:語句n;
default:語句n+1;
}
其語義是:計(jì)算表達(dá)式的值,并逐個(gè)與其后的常量表達(dá)式值進(jìn)行比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語句,然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語句;如表達(dá)式的值與所有case后的常量表達(dá)式均不相等時(shí),則執(zhí)行default后的語句。
46.C解析:數(shù)據(jù)處理的最小單位是數(shù)據(jù)項(xiàng);由若干數(shù)據(jù)項(xiàng)組成數(shù)據(jù)元素;而數(shù)據(jù)是指能夠被計(jì)算機(jī)識(shí)別、存儲(chǔ)和加工處理的信息載體;數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)之間的相互關(guān)系和數(shù)據(jù)運(yùn)算。故正確答案為選項(xiàng)C)。
47.D解析:線性表可以為空表,排除選項(xiàng)B。第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。
48.C解析:棧和隊(duì)列都是操作受限制的線性表,只允許在端點(diǎn)插入和刪除。不同點(diǎn)是:棧只允許在表的一端進(jìn)行插入和刪除操作,而隊(duì)列允許在表的一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。
49.D
50.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把a(bǔ)re復(fù)制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復(fù)制到a[1]中,故輸出a為“are&you”。
51.B解析:選項(xiàng)A的錯(cuò)誤在于,先已經(jīng)把q結(jié)點(diǎn)給釋放,無法再進(jìn)行余下語句了:選項(xiàng)C和D的錯(cuò)誤在于因?yàn)橛辛藂=(*q).next做了賦值,則free(q)釋放了原來q后面的一個(gè)結(jié)點(diǎn)。
52.B
53.D解析:考查printf函數(shù)的相關(guān)知識(shí)。如果要一次進(jìn)行多個(gè)變量的定義,則在它們之間要用逗號(hào)隔開,因此選項(xiàng)A)和C)錯(cuò)誤。在選項(xiàng)C)中,變量c是一個(gè)浮點(diǎn)型指針,它只能指向一個(gè)浮點(diǎn)型數(shù)據(jù),不能指向指針變量b,所以正確答案為B)。輸出格式控制符%c表示將變量以字符的形式輸出;輸出格式控制符%d表示將變量以帶符號(hào)的十進(jìn)制整型數(shù)輸出,所以第一個(gè)輸出語句輸出的結(jié)果為a,97;第二個(gè)輸出語句輸出的結(jié)果為k=12。所以選項(xiàng)D)為正確答案。
54.B
55.A
56.D解析:選項(xiàng)A、選項(xiàng)B和選項(xiàng)C都是在s的值為0的時(shí)候輸出y,a不為0的時(shí)候輸出x,而選項(xiàng)D是在a為0的時(shí)候輸出x,a不為0的時(shí)候輸出y。
57.B
58.C解析:scanf輸入字符串有一點(diǎn)要注意的是,格式控制串必須用%s。注意:gets函數(shù)和puts函數(shù)的作用。
59.A解析:scanf()函數(shù)的功能是進(jìn)行輸入數(shù)據(jù),它是按格式參數(shù)的要求從終端上把數(shù)據(jù)傳送到地址參數(shù)所指定的內(nèi)存空間中,C語言允許程序員間接地使用內(nèi)存地址,這個(gè)地址是通過對(duì)變量名“求地址”運(yùn)算得到的,求地址的運(yùn)算符是&,得到的地址是一種符號(hào)地址。本題中定義了整型變量a和一個(gè)指向整型數(shù)據(jù)的指針變量pa,并定義pa是一個(gè)存放a的地址的變量。選項(xiàng)B中應(yīng)該將a改為&a;選項(xiàng)C應(yīng)該將&pa改為pa,因?yàn)閜a已經(jīng)表示存放a的地址;選項(xiàng)D中*pa表示的是指針pa所指向存儲(chǔ)空間的變量的值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 質(zhì)量管理部管理制度和工作流程
- 物流行業(yè)的標(biāo)準(zhǔn)化作業(yè)制度
- 橋梁砌筑工程施工方案
- 面食品牌建設(shè)推廣方案
- 酒店客房租賃合同
- 浙江省事業(yè)單位聘用合同
- 勞動(dòng)法年假制度模版(2篇)
- 春節(jié)文化主題活動(dòng)方案模版(2篇)
- 小學(xué)學(xué)校汛期防汛應(yīng)急預(yù)案(3篇)
- 關(guān)于食品安全的制度模版(2篇)
- 江蘇南京鼓樓區(qū)2023-2024九年級(jí)上學(xué)期期末語文試卷及答案
- 河南汽車工廠48萬臺(tái)乘用車發(fā)動(dòng)機(jī)建設(shè)項(xiàng)目竣工環(huán)境保護(hù)驗(yàn)收監(jiān)測(cè)報(bào)告
- 2023-2024學(xué)年四川省成都市金牛區(qū)八年級(jí)(上)期末數(shù)學(xué)試卷
- 德邦物流-第三方物流服務(wù)
- 混凝土冬季施工保溫保濕措施
- 心電監(jiān)護(hù)技術(shù)
- 2024年華潤電力投資有限公司招聘筆試參考題庫含答案解析
- 壟斷行為的定義與判斷準(zhǔn)則
- 模具開發(fā)FMEA失效模式分析
- 聶榮臻將軍:中國人民解放軍的奠基人之一
- 材料化學(xué)專業(yè)大學(xué)生職業(yè)生涯規(guī)劃書
評(píng)論
0/150
提交評(píng)論