版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2022年江蘇省無錫市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結(jié)果是()main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
2.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。
A.廣播電視是一種雙向的、點(diǎn)到多點(diǎn)的信息交互系自
B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)
C.電話是一種雙向的、點(diǎn)對點(diǎn)的、以信息交互為主要的的系統(tǒng)
D.雷達(dá)是一種以感測和識別為主要目的的系統(tǒng)
3.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績.,則表SC的關(guān)鍵字(鍵或碼)為()
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
4.若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
則輸出結(jié)果是A.A.55B.105C.107D.58
5.
6.以下描述中,不是線性表順序存儲結(jié)構(gòu)特征的是()。
A.可隨機(jī)訪問B.需要連續(xù)的存儲空間C.不便于插入和刪除D.邏輯相鄰的數(shù)據(jù)物理位置上不相鄰
7.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。
A.2E3——整型B.2.0E3——實(shí)型C.‘\025’——字符串D.“a”——字符型
8.在1,2,3,......1000中,有()個數(shù)各位乘積為0。
A.100B.101C.172D.181E.190F.191
9.
10.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
11.關(guān)鍵路徑是事件結(jié)點(diǎn)網(wǎng)絡(luò)中()。
A.從源點(diǎn)到匯點(diǎn)的最長路徑B.從源點(diǎn)到匯點(diǎn)的最短路徑C.最長回路D.最短回路
12.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試
13.C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是()。
A.預(yù)定義標(biāo)識符(如庫函數(shù)中的函數(shù)名)可用做用戶標(biāo)識符,但失去原有含義
B.用戶標(biāo)識符可以由字母和數(shù)字任意順序組成
C.在標(biāo)識符中大寫字母和小寫字母被認(rèn)為是相同的字符
D.關(guān)鍵字可用做用戶標(biāo)識符,但失去原有含義
14.
15.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。
A.34B.42C.43D.33
16.
17.下列敘述中錯誤的是()。
A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時,實(shí)參和對應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動存儲類別
D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量
18.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
19.
20.棧和隊(duì)列的共同點(diǎn)是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
二、2.填空題(20題)21.下列程序的運(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]);
}
}
22.下列程序的功能是計算數(shù)的階乘。
main()
{ihti,n;
nlongnp;
scanf("%d",&n);
np=【】;
for(i=2;i<=n;i++)
【】;
printf("n=%dn!=%ld\n",n,np);
}
23.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
25.以下程序的功能是建立一個帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
26.數(shù)據(jù)庫存管理系統(tǒng)常見的靈敏據(jù)模型有層次、網(wǎng)狀和【】三種。
27.下列程序的運(yùn)行結(jié)果是______。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf('%s\n",p);
}
28.某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
29.執(zhí)行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
30."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
31.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,legth=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<length)
while(k<length)
s[j++]=s[k++];
s[j]='\0'
}
32.若有以下程序:
main()
{
inta=4,b=3,c==5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
33.以下程序的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。請?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
34.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
35.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。
36.在鏈表的運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。
37.下面程序的輸出是【】。
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;
printf("%d\n",z);
}
38.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。
39.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
40.以下sum函數(shù)的功能是計算下列級數(shù)之和。請給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.程序設(shè)計過程中的主要工作是編制程序
B.程序設(shè)計的主要目標(biāo)是編制出運(yùn)行結(jié)果正確的程序
C.不良的程序設(shè)計風(fēng)格會增加程序的復(fù)雜性
D.上述三種說法都不對
42.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int,*s,intP[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
43.算法的有窮性是指A.算法程序的運(yùn)行時間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
44.最常用的一種基本數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型,它的表示應(yīng)采用()。
A.樹B.網(wǎng)絡(luò)C.圖D.二維表
45.若程序執(zhí)行時的輸入數(shù)據(jù)是"2473",則下述程序的輸出結(jié)果是#include<stdio.h>voidmain(){intcs;while((cs=getchar())!=;'\n'){switch(cs-'2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2);}}}
A.668977B.668966C.6677877D.6688766
46.有以下程序main(intargc,char*argv[]){intn,i=0;while(argv[1][i]!='\0'){n=fun();i++;}printf("%d\n",n*argc);}intfun(){staticints=0;s=-1;returns;}假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令行cxam123<回車>則運(yùn)行結(jié)果為
A.6B.8C.3D.4
47.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
48.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是
A.n,twoB.t,oneC.w,oneD.o,two
49.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是
A.5B.6C.9D.8
50.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是
A.0B.0.25C.0.5D.1
51.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語句______。for(i=0;k=-1,k=1;i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無限循環(huán)C.循環(huán)一次也不執(zhí)行D.循環(huán)只執(zhí)行一次
52.在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
53.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
54.若有下面的說明和定義,則sizeof(structaa)的值是______。structaa{intrl;doubler2;floatr3;uninuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
55.下列選項(xiàng)中錯誤的說明語句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
56.已知字符'A'的ASCII碼值是65,字符變量cl的值是'A',c2的值是'D'。執(zhí)行語句Printf("%d,%d",c1,c2-2);后,輸出結(jié)果是
A.A,BB.A,68C.65,66D.65,68
57.在C語言中,變量的隱含存儲類別是
A.autoB.staticC.extemD.無存儲類別
58.下面程序的輸出結(jié)果是______。voidprty(int*x){printf("%d\n",++*x);}main(){inta=25;prty(&a);}
A.23B.24C.25D.26
59.以下程序試圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符串#號時結(jié)束輸入和輸出操作,但程序有錯#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt''w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出錯的原因是______。
A.函數(shù)fopen調(diào)用形式錯誤B.輸入文件沒有關(guān)閉C.函數(shù)fgetc調(diào)用形式錯誤D.文件指針stdin沒有定義
60.有以下程序
main()
{inti;
for(i=1;i<=40;i++)
{if(i++%5==0)
if(++i%8==0)printf("%d",i);
}
printf("\n");
}
執(zhí)行后的輸出結(jié)果是
A.5B.24C.32D.40
四、選擇題(20題)61.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結(jié)果是______。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
62.
63.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。
A.選擇、投影、連接B.排序、查找、統(tǒng)計C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
64.若有定義語句:
65.有以下程序
66.
67.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
68.一個函數(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.語句中有錯誤,因?yàn)椤皕(10)”應(yīng)該為“z[10]”
69.
(19)關(guān)系表中的每一橫行稱為一個()
A.元組
B.字段
C.屬性
D.碼
70.
71.
72.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
73.
有以下程序:
fun(intx)
{intP;
if(x==0||x==l)return(3);
p=x-fun(x-2);
returnp;
}
main
{printf("%d\n",fun(7));}
程序執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
74.
75.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在執(zhí)行了“c=&b;b=&a;”語句后,表達(dá)式“**c”的值是()。
A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址
76.有以下程序
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)
puts(ps);
}
程序的運(yùn)行結(jié)果是
A.yzB.zC.zD.x
xyzyzyzxy
xyzxyz
77.
78.有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
執(zhí)行后的輸出結(jié)果是
A.9,2B.10,2
C.9,1D.10,1
79.
80.下面程序的輸出結(jié)果為()。
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[1],
70,&dt[2],80&dt[3]};
main()
{p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A.10B.50C.51D.60
20606070
20212131
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進(jìn)行排序。
例如,排序前的數(shù)據(jù)為:1132-5214
則排序后的數(shù)據(jù)為:-52111432
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.假定輸人的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中
的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。
例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則
應(yīng)當(dāng)是a*bc*def*g****。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編
寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidproc(char*str)
{
}
voidmain
{
charstr[81];
printf("Enterastring:kn");
gets(str);
proc(str);
printf("Thestringafterdeleted:kn");
puts(str);}
參考答案
1.B解析:本題的執(zhí)行過程是:
在While循環(huán)中,
比較xyz
第—次:3>0&&1<5142
第二次:2>0&&2<5231
第三次:1>0&&3<5320
判斷條件“z-->0”不成立,也不執(zhí)行“i+=2”語句,循環(huán)結(jié)束,因此,輸出結(jié)果為3,2,-1。
2.A廣播/電視是一種單向的、點(diǎn)對多點(diǎn)(面)的以信息傳遞為主要目的的系統(tǒng)。
3.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項(xiàng)。
4.A
5.C
6.DD)【解析】線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。
7.B2E3是實(shí)型常量的指數(shù)形式,選項(xiàng)A錯誤;2.0E3是實(shí)型常量的指數(shù)形式,選項(xiàng)B正確;‘\\025’是八進(jìn)制表示的轉(zhuǎn)義字符,選項(xiàng)C錯誤;“a”是雙引號標(biāo)注的字符串常量,選項(xiàng)D錯誤。故本題答案為B選項(xiàng)。
8.D
9.B
10.D
11.A
12.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
13.A用戶標(biāo)識符不能以數(shù)字開頭,C語言中標(biāo)識符是區(qū)分大小寫的,關(guān)鍵字不能用做用戶標(biāo)識符。
14.B
15.D解析:逗號表達(dá)式(++x,y++)的值應(yīng)該是y++的值,由于y++是先引用后自增,所以y++的值是3。
16.D
17.C解析:外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動存儲類別。
18.D本題考查靜態(tài)變量,靜態(tài)變量有儲存已經(jīng)操作過的值,所以fun(a)s[O]=3,s[1]=5,s[2]=7,所以答案選擇D。
19.D
20.C解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”(或“先進(jìn)后出”)的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端:進(jìn)行刪除操作,是一種“先進(jìn)先出”(或“后進(jìn)后出”)的線性表。因此棧和隊(duì)列的共同點(diǎn)是只允許在端點(diǎn)處插入和刪除元素。
21.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ù)組中前面兩項(xiàng)的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。
22.1np*=i或np=np*i1\r\nnp*=i或np=np*i
23.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。
24.21
25.p->dataqp->data,q解析:本題考查的是鏈表這一數(shù)據(jù)結(jié)構(gòu)對結(jié)構(gòu)體變量中數(shù)據(jù)的引用。鏈表的特點(diǎn)是結(jié)構(gòu)體變量中有兩個域,一個是數(shù)據(jù),另一個是指向該結(jié)構(gòu)體變量類型的指針,用以指明鏈表的下一個結(jié)點(diǎn)。
26.關(guān)系關(guān)系
27.efghefgh解析:本題考核的知識點(diǎn)是通過指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實(shí)參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。
28.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個。
29.1515解析:程序的功能是求1、2、3、4、5的和即15。
30.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志,\'\\0\'。
\'\\t\',是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\\''是轉(zhuǎn)義字符,代表雙引號;\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符:\'\\xAB\'是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個字符:\'\\n\'是轉(zhuǎn)義字符,代表回車換行?!?/p>
5個子符常量各代表一個字符,再加上字母C,所以返回的長度是6。
31.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后一個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
32.503503解析:先判斷表達(dá)式a<b為假,不執(zhí)行t=a,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。再判斷表達(dá)式a<C,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
33.s%10*s1+t
34.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內(nèi)存。然后將分配好的內(nèi)存塊的首地址作為void*(未知類型指針)返回.故標(biāo)準(zhǔn)的調(diào)用形式應(yīng)該寫成:
p(double*)malloc(sizeof(double));
35.0。0。解析:表達(dá)式中將實(shí)型常量2.5和算術(shù)表達(dá)式1.25*(3.7+2.3)的值強(qiáng)制轉(zhuǎn)換為整型后參與運(yùn)算。
36.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設(shè)置了一個頭結(jié)點(diǎn),因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點(diǎn)存在,從而使空表與非空表的運(yùn)算統(tǒng)一。
37.66解析:本題變量z的值應(yīng)為最后一次給它賦的值,且最后一次for循環(huán)使prt指向a[2]
38.1616解析:滿二叉樹的葉子結(jié)點(diǎn)都在最后一層,即第4層,且第4層的結(jié)點(diǎn)達(dá)到最大數(shù),即25-1=16。
39.軟件開發(fā)
40.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1s=1或給abs賦1或1.0或1.a=1;b=1;s=1;或a=b=s=1;或a=1.b=1,s=1或給a,b,s賦1或1.0或1.解析:sum函數(shù)的功能是求表達(dá)式s的級數(shù)之和,該函數(shù)的大致思路是:在該函數(shù)中,定義了—個整型變量i用作循環(huán)計數(shù)器,定義一個變量a用來表示各個子項(xiàng)的分子,初始為第一個子項(xiàng)的分子,故為1,定義了一個變量b用來表示各個子項(xiàng)大分母,初始為第一個子項(xiàng)的分母,故為1,定義一個變量s存放累加和,初始為第一個子項(xiàng)的值即為1,然后給各個定義的變量初始化,然后通過一個for循環(huán)將題目中的數(shù)學(xué)表達(dá)式的各個子項(xiàng)求出來并累加到s中,所以說,在該題的空格處應(yīng)該填寫將a、b和s賦初值的語句,即為a=1;b=1;s=1:(說明:語句的順序可任意)或a=b=s=1;(說明:變量的順序可任意)或a=1,b=1,s=1(說明:賦值表達(dá)式的順序可任意)給a,b,s賦1或1.0或1都可以。
41.C解析:程序設(shè)計過程中包括很多步驟,編制程序只是其中的一步。所以,選項(xiàng)A錯誤。
程序設(shè)計的最終產(chǎn)品是程序,但僅設(shè)計和編制出一個運(yùn)行結(jié)果正確的程序是不夠的,還應(yīng)養(yǎng)成良好的程序設(shè)計風(fēng)格。所以,選項(xiàng)B錯誤。
程序設(shè)計的根本目標(biāo)是要降低程序的復(fù)雜性和提高程序的可讀性。而程序的復(fù)雜性主要來自以下兩個方面:問題固有的復(fù)雜性;不良的設(shè)計風(fēng)格人為增加了程序的復(fù)雜性。所以,良好的設(shè)計風(fēng)格對于降低程序的復(fù)雜性是很重要的,并且,好的設(shè)計風(fēng)格是好的程序風(fēng)格的基本保證。選項(xiàng)C正確。
42.C解析:本題a[2][3]定義為一個具有兩面行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個長度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fut()函數(shù),將第一行第一列對應(yīng)的元素值賦給**s,由于數(shù)組中第一行第一列對應(yīng)的元素為9,所以本題輸出值9。
43.A算法的有窮性,是指算法必須能在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限個步驟之后終止。
44.DD。【解析】關(guān)系數(shù)據(jù)模型是屬于數(shù)據(jù)庫的一種最重要的數(shù)據(jù)模型,在關(guān)系數(shù)據(jù)模型中,實(shí)體及實(shí)體間的聯(lián)系都用二維表來表示。
45.A解析:本題主要考查了switch語句的使用方法。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時則執(zhí)行default后面的語句。
46.A解析:主函數(shù)的第一個參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個數(shù):第二個參數(shù)argv是一個字符型的指針數(shù)組,它的每一個元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為2,argv[0]指向字符串“exam”,argv[1]指向參數(shù)字符串“123”。在main()函數(shù)中,while循環(huán)執(zhí)行了3次,調(diào)用了3次fun()函數(shù):第一次調(diào)用fun()函數(shù)時,定義了一個靜態(tài)變量s并賦初值0,加1后作為函數(shù)值返回,n偽值為1;第二次調(diào)用fun()函數(shù)時,靜態(tài)變量s的值將保留上一次退出時的值1,再加1為2,作為函數(shù)值返回,n的值為2;同理第三次調(diào)用返回后,n的值為3。輸出n*argc的值為6。
47.D解析:本題考核的知識點(diǎn)是在自加運(yùn)算符的運(yùn)算對象。自加運(yùn)算對象可以是整型變量也可以是實(shí)型變量,但不能是表達(dá)式和常量。本題中,#defined2定義了d為常數(shù)2,不能在對d進(jìn)行自加運(yùn)算.故選項(xiàng)D是個不正確的語句,所以,4個選項(xiàng)中選項(xiàng)D符合題意。
48.C解析:本題考核的知識點(diǎn)是指針數(shù)組。本崽首先定義了一個有3個元素的指針數(shù)組s,并遭過賦值使s[0]指向字符串“one”s[1]指向字符串“two”,s[2]指向字符串“three”,然后通過賦值語句“p=s[1]”,使p指向了字符串“two”,故”(p+1)”就是字符“w”。所以,C選項(xiàng)為所選。
49.C解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。
50.C解析:該題目測驗(yàn)考生對if…elseif結(jié)構(gòu)的理解,比較簡單。x的值滿足x<10.0的關(guān)系,所以程序?qū)?zhí)行y=1.0/x;語句,y的值應(yīng)該等于0.5。最后,用printf函數(shù)輸出時,%f的輸出格式為小數(shù)點(diǎn)后保留6位。
51.B解析:本題定義了一個for循環(huán),循環(huán)變量是i,但由于本題并沒有設(shè)置循環(huán)條件,所以循環(huán)的條件永遠(yuǎn)默認(rèn)為真,即無限次執(zhí)行循環(huán)。
52.B解析:在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進(jìn)行比較,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個元素,算法才結(jié)束。因此,在長度為64的有序線性表十進(jìn)行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項(xiàng)B。
53.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算:S=m+n+m+n*k=1+2+1+2*3=10。
54.D解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員r1占2個字節(jié),r2占8個字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。
55.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項(xiàng)B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符'\\0'作為串的結(jié)束標(biāo)記。
56.C解析:在C語言中,字符型數(shù)據(jù)在內(nèi)存中的存儲形式是ASCII碼值。當(dāng)需要以整型格式輸出字符時,輸出的也是ASCII碼值。字符'A'和'D'的ASCII碼值分別為65和68。
57.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?,?shí)際上,關(guān)鍵字“auto”可以省略,auto不寫則隱含確定為“自動存儲類別”,屬于動態(tài)存儲方式
58.D
59.A解析:本題考查的是文件的打開函數(shù)fopen(),其調(diào)用方式通常為FLIE*fp;fp=fopen(文件名,使用文件方式);,如:fp=fopen('abc.txt','w');表示要打開名字為abc.txt的文件,使用文件方式寫入。fopen函數(shù)帶回指向abc.txt文件的指針并賦給fp,即fp指向文件abc.txt。
60.C解析:當(dāng)for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經(jīng)過兩次自加1運(yùn)算,值變?yōu)?2,能被8整除,故此時第一次執(zhí)行'printf('%d',i);'語句,即輸出32。
61.C解析:本題考查“邏輯或”運(yùn)算的特例。本題中if語句的條件表達(dá)式為(j++||k++)&&i++,首先計算表達(dá)式(j++||k++)的值,++運(yùn)算符位于右側(cè),因此先取j、k當(dāng)前值進(jìn)行運(yùn)算,因j=1,所以表達(dá)式(j++||k++)的值為真,k++表達(dá)式不再執(zhí)行,故執(zhí)行完表達(dá)式(j++||k++)&&i++后,j=2、k=2、i=2。
62.A
63.A\n關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算,包括選擇運(yùn)算、投影運(yùn)算、連接運(yùn)算。本題答案為A)。
\n
64.Ab=4不能作為左值,所以本題答案為A)。
65.A第一次循環(huán)返回2,第二次循環(huán)返回4,所以輸出4,答案選擇A)。
66.B
67.D解析:C語言中的文件是流式文件。流式文件是一種無結(jié)構(gòu)文件,即整個文件是一串字符流或二進(jìn)制流。文件的存取以字符或字節(jié)為單位。
68.D數(shù)組的表示為z[10],也不是一個函數(shù),函數(shù)應(yīng)該有形參,變量沒有那樣的表示法,賦初值的形式的不對。
69.A
70.B
71.D
72.A\n數(shù)據(jù)的共享自身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)據(jù)在不同位置出現(xiàn)時應(yīng)保持相同的值。
\n
73.C
\n在函數(shù)funlintx)中,有個if語句判斷,如果參數(shù)x等于0或1時,返回值,否則進(jìn)入下面的p=x-fun(x-2)遞歸函數(shù)。當(dāng)在主函勢中調(diào)用fun(7)時,其過程為:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun(1)))=7-(5-(3—3))=7-5=2”,所以最后的輸出結(jié)果為2。
\n
74.D
75.C解析:主函數(shù)中定義了一個整型變量a,一個整型指針變量b和一個二級指針變量c,并讓c指向指針變量b,讓指針b指向整形變量a,所以**c為變量a的值,所以,4個選項(xiàng)中選項(xiàng)C符合題意。
76.B本題主要考查循環(huán)結(jié)構(gòu)和字符串的存儲結(jié)構(gòu)。在C語言中,為了方便確定字符串的長度,編譯系統(tǒng)在字符串后增加了一個結(jié)束標(biāo)識‘\\0’,即ASCII碼的0。
在程序中,首先定義了一個字符型數(shù)組str,并賦初值,然后定義一個同類型的指針變量ps,并使ps指向字符數(shù)組str。
在while循環(huán)中,循環(huán)結(jié)束的條件是*ps的值為0,由于循環(huán)開始前,指針變量ps是指向數(shù)組的第一個元素,即*ps等價于str[0],值為x,其ASCII碼值不為0,循環(huán)繼續(xù),使ps指向數(shù)組的第二個元素,很明顯,結(jié)果不為0,第三個元素也不為0,而第四個元素才為0,循環(huán)結(jié)束,此時ps指向數(shù)組中的結(jié)束標(biāo)識符。
在for循環(huán)中,首先將指針變量ps做自減運(yùn)算,即使指針變量ps執(zhí)行數(shù)組的最后一個元素值,即第三個元素z,然后用輸出函數(shù)puts輸出,該輸出函數(shù)的功能是輸出字符串或字符數(shù)組到終端上,一次只能輸出一個字符串,輸出時,遇到字符串結(jié)束標(biāo)志符結(jié)束,并自動換行。
第一次for循環(huán)時,由于ps指向z,輸出的結(jié)果為z,換行。
第二次for循環(huán)時,由于ps指向y,那么輸出的結(jié)果為yz,換行。
第二次for循環(huán)時,由于ps指向x,那么輸出的結(jié)果為xyz,換行。
因此,本題的正確答案是B。
\r\n\r\n\r\n
77.D
78.B本題主要考查自加和自減運(yùn)算符。對變量a進(jìn)行自減、自加的運(yùn)算主要有如下四種。
++a:是對變量a進(jìn)行自加運(yùn)算,它是先加,再對加后的結(jié)果進(jìn)行調(diào)用;
a++:也是對變量a進(jìn)行自加運(yùn)算,它是先調(diào)用變量a原來的值,然后對其進(jìn)行自加;
--a:是對變量a進(jìn)行自減運(yùn)算,它是先減,然后對相減后的結(jié)果進(jìn)行調(diào)用;
a--:也是對變量a進(jìn)行自減運(yùn)算,它是先調(diào)用變量a原來的值,然后對其進(jìn)行自減。
在程序中,首先定義了兩個整型變量i和j,并分別賦初值為10和1,然后用輸出語句分別輸出這兩個變量自減與自加的結(jié)果。程序中調(diào)用的形式分別為i--和++j,前者為先調(diào)用再減,輸出的為10,而后者是先加再調(diào)用,輸出的為2。程序最后的輸出結(jié)果為10,2。因此,本題答案選B。
79.D
80.Cp指向aa的首地址,++p->x首先取x的值,再增1,即50+1;(++p)->x使p指向下一元素,然后取其值,即60,++(*p->y)取y指向的值,即20,然后增1,即20+1
81.
【解析】for循環(huán)結(jié)束的標(biāo)志是for后的一個語句,如果for后面直接跟一個分號,說明是一個空循環(huán)不執(zhí)行任何功
82.voidproc(char*str)
\n{
\nchar*p=str;
\nwhile(*p==*)p++;//通過p的移動來達(dá)到使p指向第一個不是*號的字符
\nfor(;*p!=\0;p++,str++)//把從第一個不是*號的字符放到a中
\n*str=*P:
\n*str=\0;//最后用\0作為字符串結(jié)束標(biāo)志
\n}
\n【解析】題目中要求將字符串中的前導(dǎo)*號全部刪除,首先將指針P移動到第一個不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。
\n2022年江蘇省無錫市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的輸出結(jié)果是()main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5
2.下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。
A.廣播電視是一種雙向的、點(diǎn)到多點(diǎn)的信息交互系自
B.網(wǎng)絡(luò)聊天是一種雙向的,以信息交互為主要目的系統(tǒng)
C.電話是一種雙向的、點(diǎn)對點(diǎn)的、以信息交互為主要的的系統(tǒng)
D.雷達(dá)是一種以感測和識別為主要目的的系統(tǒng)
3.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績.,則表SC的關(guān)鍵字(鍵或碼)為()
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
4.若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
則輸出結(jié)果是A.A.55B.105C.107D.58
5.
6.以下描述中,不是線性表順序存儲結(jié)構(gòu)特征的是()。
A.可隨機(jī)訪問B.需要連續(xù)的存儲空間C.不便于插入和刪除D.邏輯相鄰的數(shù)據(jù)物理位置上不相鄰
7.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。
A.2E3——整型B.2.0E3——實(shí)型C.‘\025’——字符串D.“a”——字符型
8.在1,2,3,......1000中,有()個數(shù)各位乘積為0。
A.100B.101C.172D.181E.190F.191
9.
10.在inta=3,int*p=&a;中,*p的值是()
A.變量a的地址值B.無意義C.變量p的地址值D.3
11.關(guān)鍵路徑是事件結(jié)點(diǎn)網(wǎng)絡(luò)中()。
A.從源點(diǎn)到匯點(diǎn)的最長路徑B.從源點(diǎn)到匯點(diǎn)的最短路徑C.最長回路D.最短回路
12.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗(yàn)證測試D.驗(yàn)收測試
13.C語言中的標(biāo)識符分為關(guān)鍵字、預(yù)定義標(biāo)識符和用戶標(biāo)識符,以下敘述正確的是()。
A.預(yù)定義標(biāo)識符(如庫函數(shù)中的函數(shù)名)可用做用戶標(biāo)識符,但失去原有含義
B.用戶標(biāo)識符可以由字母和數(shù)字任意順序組成
C.在標(biāo)識符中大寫字母和小寫字母被認(rèn)為是相同的字符
D.關(guān)鍵字可用做用戶標(biāo)識符,但失去原有含義
14.
15.有如下程序main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}運(yùn)行該程序的輸出結(jié)果是______。
A.34B.42C.43D.33
16.
17.下列敘述中錯誤的是()。
A.在C語言中,函數(shù)中的自動變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時,實(shí)參和對應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動存儲類別
D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量
18.有以下程序:#include<stdio.h>voidfun(int*s){staticinti=0;do{s[J]=s[J]+s[j+I];}while(++j<2);}main(){intk.a(chǎn)[l0]={1,2,3,4,5};for(k=1;k<3;k++)fun(a);for(k=0;k<5;k++)pfintf("%d",a[k]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.12345B.23445C.34756D.35745
19.
20.棧和隊(duì)列的共同點(diǎn)是()。
A.都是先進(jìn)先出B.都是先進(jìn)后出C.只允許在端點(diǎn)處插入和刪除元素D.沒有共同點(diǎn)
二、2.填空題(20題)21.下列程序的運(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]);
}
}
22.下列程序的功能是計算數(shù)的階乘。
main()
{ihti,n;
nlongnp;
scanf("%d",&n);
np=【】;
for(i=2;i<=n;i++)
【】;
printf("n=%dn!=%ld\n",n,np);
}
23.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
24.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
}
printf("%d%d\n",a,b);
}
25.以下程序的功能是建立一個帶有頭結(jié)點(diǎn)的單向鏈表,鏈表結(jié)點(diǎn)中的數(shù)據(jù)通過鍵盤輸入,當(dāng)輸入數(shù)據(jù)為-1時,表示輸入結(jié)束(鏈表頭結(jié)點(diǎn)的data域不放數(shù)據(jù),表空的條件是ph->next==NULL),請?zhí)羁铡?/p>
#include<stdio.h>
structlist{intdata;structlist*next;};
structlist*creatlist()
{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));
p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");
scanf("%d",&a);
while(a!=-1)
{p=(structlist*)malloc(sizeof(structlist));
【】=a;q->next=p;【】=p;scanf("%d",&a);}
p->next=′\0;return(ph);}
main()
{structlist*head;head=creatlist();}
26.數(shù)據(jù)庫存管理系統(tǒng)常見的靈敏據(jù)模型有層次、網(wǎng)狀和【】三種。
27.下列程序的運(yùn)行結(jié)果是______。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf('%s\n",p);
}
28.某二叉樹中度為2的結(jié)點(diǎn)有18個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
29.執(zhí)行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
30."print("%d\n",strlen("\t\"\023\xABC\n"));”語句的輸出結(jié)果是______。
31.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,legth=0;
while(s[length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<length)
while(k<length)
s[j++]=s[k++];
s[j]='\0'
}
32.若有以下程序:
main()
{
inta=4,b=3,c==5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
33.以下程序的功能是:從低位開始取出長整型變量s中奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。請?zhí)羁铡?include<stdio.h>main(){longs,t,s1=10;pfintf("\n.Pleaseenters:");scanf("%1d",&s);t=s%10;while(s>0){s=s/100;t=();s1=s1*10;}printf("Theresultis:%1d\n",t);}
34.已有定義:double*p;,請寫出完整的語句,利用malloc函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
35.表達(dá)式8/4*(int)2.5/(int)(1.25*(3.7+2.3))的值是______。
36.在鏈表的運(yùn)算過程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是______。
37.下面程序的輸出是【】。
main()
{inta[]={2,4,6},*ptr=&a[0],x=8,y,z;
for(y=0;y<3;y++)z=(*(ptr+y)<x)?*(prt+y):x;
printf("%d\n",z);
}
38.深度為5的滿二叉樹中,葉子結(jié)點(diǎn)的個數(shù)為______。
39.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
40.以下sum函數(shù)的功能是計算下列級數(shù)之和。請給函數(shù)中的各變量正確賦初值。
doublesum(doublex,intn)
{inti;doublea,b,s;
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
returns;
}
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.程序設(shè)計過程中的主要工作是編制程序
B.程序設(shè)計的主要目標(biāo)是編制出運(yùn)行結(jié)果正確的程序
C.不良的程序設(shè)計風(fēng)格會增加程序的復(fù)雜性
D.上述三種說法都不對
42.下面程序運(yùn)行后的輸出結(jié)果是______。fut(int,*s,intP[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}
A.1B.7C.9D.11
43.算法的有窮性是指A.算法程序的運(yùn)行時間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
44.最常用的一種基本數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型,它的表示應(yīng)采用()。
A.樹B.網(wǎng)絡(luò)C.圖D.二維表
45.若程序執(zhí)行時的輸入數(shù)據(jù)是"2473",則下述程序的輸出結(jié)果是#include<stdio.h>voidmain(){intcs;while((cs=getchar())!=;'\n'){switch(cs-'2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2);}}}
A.668977B.668966C.6677877D.6688766
46.有以下程序main(intargc,char*argv[]){intn,i=0;while(argv[1][i]!='\0'){n=fun();i++;}printf("%d\n",n*argc);}intfun(){staticints=0;s=-1;returns;}假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令行cxam123<回車>則運(yùn)行結(jié)果為
A.6B.8C.3D.4
47.設(shè)有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
48.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是
A.n,twoB.t,oneC.w,oneD.o,two
49.有如下程序inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=&a[3],b;b=p[5];則b的值是
A.5B.6C.9D.8
50.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是
A.0B.0.25C.0.5D.1
51.設(shè)已定義i和k為int類型變量,則以下for循環(huán)語句______。for(i=0;k=-1,k=1;i++,k++)printf("****\n");
A.判斷循環(huán)結(jié)束的條件不合法B.是無限循環(huán)C.循環(huán)一次也不執(zhí)行D.循環(huán)只執(zhí)行一次
52.在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
53.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
54.若有下面的說明和定義,則sizeof(structaa)的值是______。structaa{intrl;doubler2;floatr3;uninuu{charul[5];longu2[2]}ua;}mya;
A.30B.29C.24D.22
55.下列選項(xiàng)中錯誤的說明語句是
A.chara[]={′t′,′o′,′y′,′o′,′u′,′\0′};
B.chara[]={"toyou\0"};
C.chara[]="toyou\0";
D.chara[]=′toyou\0′;
56.已知字符'A'的ASCII碼值是65,字符變量cl的值是'A',c2的值是'D'。執(zhí)行語句Printf("%d,%d",c1,c2-2);后,輸出結(jié)果是
A.A,BB.A,68C.65,66D.65,68
57.在C語言中,變量的隱含存儲類別是
A.autoB.staticC.extemD.無存儲類別
58.下面程序的輸出結(jié)果是______。voidprty(int*x){printf("%d\n",++*x);}main(){inta=25;prty(&a);}
A.23B.24C.25D.26
59.以下程序試圖把從終端輸入的字符輸出到名為abc.txt的文件中,直到從終端讀入字符串#號時結(jié)束輸入和輸出操作,但程序有錯#include<stdio.h>main(){FILE*fout;charch;fout=fopen('abc.txt''w');ch=fgetc(stdin);while(ch!='#'){fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出錯的原因是______。
A.函數(shù)fopen調(diào)用形式錯誤B.輸入文件沒有關(guān)閉C.函數(shù)fgetc調(diào)用形式錯誤D.文件指針stdin沒有定義
60.有以下程序
main()
{inti;
for(i=1;i<=40;i++)
{if(i++%5==0)
if(++i%8==0)printf("%d",i);
}
printf("\n");
}
執(zhí)行后的輸出結(jié)果是
A.5B.24C.32D.40
四、選擇題(20題)61.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結(jié)果是______。
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
62.
63.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實(shí)現(xiàn)的專門關(guān)系運(yùn)算包括()。
A.選擇、投影、連接B.排序、查找、統(tǒng)計C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
64.若有定義語句:
65.有以下程序
66.
67.C語言中,組成數(shù)據(jù)文件的成分是()。A.A.記錄
B.數(shù)據(jù)行
C.數(shù)據(jù)塊
D.字符(字節(jié))序列
68.一個函數(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.語句中有錯誤,因?yàn)椤皕(10)”應(yīng)該為“z[10]”
69.
(19)關(guān)系表中的每一橫行稱為一個()
A.元組
B.字段
C.屬性
D.碼
70.
71.
72.下面關(guān)于數(shù)據(jù)庫系統(tǒng)中敘述正確的是()。
A.數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的一致
D.數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
73.
有以下程序:
fun(intx)
{intP;
if(x==0||x==l)return(3);
p=x-fun(x-2);
returnp;
}
main
{printf("%d\n",fun(7));}
程序執(zhí)行后的輸出結(jié)果是()。
A.7B.3C.2D.0
74.
75.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;……}程序在執(zhí)行了“c=&b;b=&a;”語句后,表達(dá)式“**c”的值是()。
A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址
76.有以下程序
main()
{charstr[]="xyz",*ps=str;
while(*ps)ps++;
for(ps--;ps-str>=0;ps--)
puts(ps);
}
程序的運(yùn)行結(jié)果是
A.yzB.zC.zD.x
xyzyzyzxy
xyzxyz
77.
78.有以下程序
main()
{inti=10,j=1;
printf("%d,%d\n",i--,++j);
}
執(zhí)行后的輸出結(jié)果是
A.9,2B.10,2
C.9,1D.10,1
79.
80.下面程序的輸出結(jié)果為()。
structst
{intx;
int*y;
}*p;
intdt[4]={10,20,30,40};
structstaa[4]={50,&dt[0],60,&dt[1],
70,&dt[2],80&dt[3]};
main()
{p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A.10B.50C.51D.60
20606070
20212131
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:用選擇法對數(shù)組中的m個元素按從小到大的順序進(jìn)行排序。
例如,排序前的數(shù)據(jù)為:1132-5214
則排序后的數(shù)據(jù)為:-52111432
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.假定輸人的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中
的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。
例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則
應(yīng)當(dāng)是a*bc*def*g****。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編
寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidproc(char*str)
{
}
voidmain
{
charstr[81];
printf("Enterastring:kn");
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆北京市第二十七中學(xué)物理高一上期中質(zhì)量檢測試題含解析
- 廣東省潮州市饒平縣饒平二中2025屆物理高二上期中質(zhì)量檢測模擬試題含解析
- 2025屆河北省廊坊市名校物理高一上期中監(jiān)測模擬試題含解析
- 2025屆安徽省合肥一中、安慶一中等六校教育研究會物理高二第一學(xué)期期末檢測模擬試題含解析
- 2025屆江蘇省南京市鼓樓區(qū)物理高一第一學(xué)期期末監(jiān)測試題含解析
- 2025屆云南省陸良縣第八中學(xué)物理高二第一學(xué)期期末檢測試題含解析
- 2024年顯示器項(xiàng)目提案報告模范
- 銀行借款合同范本格式
- 2024版商鋪合租合同樣本
- 定期無固定期限勞動合同文檔
- 土石方應(yīng)急預(yù)案
- 供應(yīng)商送貨和人員進(jìn)出倉庫規(guī)定培訓(xùn)課件
- 喪葬行業(yè)的盈利分析
- 年度客艙清潔總結(jié):成功經(jīng)驗(yàn)與不足反思
- 書法等級考試試題含答案一至九級
- 應(yīng)急救援基地項(xiàng)目可行性研究報告
- Unit+5+Understanding+ideas高中英語外研版(2019)選擇性必修第一冊
- 走馬燈內(nèi)部蠟燭距離與其旋轉(zhuǎn)速度關(guān)系的探究實(shí)驗(yàn)假設(shè)
- 對講產(chǎn)品行業(yè)分析報告
- 2022級西學(xué)中班《中藥學(xué)》考試試題
- 意大利(百得)TBG 系列燃燒機(jī)說明書
評論
0/150
提交評論