版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2022年江蘇省連云港市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下選項中,合法的一組C語言數(shù)值常量是()。
A.028.5e-3-0xf
B.12.OXa234.5eO
C..1774c1.5Oabc
D.0x8A10,0003.e5
2.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
3.計算機算法必須具備輸入、輸出和()等5個特性。
A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性
4.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機結(jié)果*/}程序運行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯
5.
6.有以下程序:
程序運行后的輸出結(jié)果是()。A.4B.2C.3D.1
7.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
8.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時編譯器提示錯誤信息,你認為出錯的語句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;
9.以下程序的運行結(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=*(p+5):printf("%d%d\n",*p,*q);}
A.運行后報錯B.66C.612D.55
10.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
11.對一個關系投影操作以后,新關系的元組個數(shù)______原來關系的元組個數(shù)。
A.小于B.小于或等于C.等于D.大于
12.C語言提供的合法關鍵字是()
A.switchB.cherC.caseD.default
13.
14.判斷一個棧ST(最多元素為Maxsize)為空的條件是()。
A.ST->top!==一1
B.ST->top==-1
C.ST->top!==Maxsize-1
D.ST->top==Maxsize-1
15.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
16.采用開放定址法處理散列表的沖突時,其平均查找長度()
A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突
17.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結(jié)果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
18.
19.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈式存儲結(jié)構(gòu)
20.以下是if語句的基本形式:if
(表達式)語句,其中表達式A.A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式
二、2.填空題(20題)21.數(shù)據(jù)流的類型有______和事務型。
22.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
23.以下程序運行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
24.數(shù)據(jù)流圖有兩種典型的結(jié)構(gòu)形式,它們分別是變換型和【】。
25.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
26.以下程序的運行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
}
27.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
28.以下程序的功能是求下列算式中A、B、C的值,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,k,t=348;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;【】;c++)
{k=【】;
if(k==t)
printf("A=%dB=%dC=%d\n",a,b,c);
}
}
29.設在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
30.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標。請?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
31.若a是int型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。
32.表示條件:10<x<100或x<0的C語言表達式【】。
33.函數(shù)mycmp(char*s,char*t)的功能提比較字符串s和t的大小,當s等于t時返回0,當s>t返回正值,當s<t時返回負值。請?zhí)羁铡?/p>
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(【】)
}
34.若有程序:
main()
{inti,j;
scanq("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求給i賦10,給j賦20,則應該從鍵盤輸入【】。
35.下面程序的運行結(jié)果是:【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf(“%d%d\n”,i1,i2);
}
36.與二維表中的“行”的概念最接近的概念是()。
37.以下程序的運行結(jié)果是【】。
#include<string.h>
typedefstructstudent{
charname[10];
longsno);
floatscore
}STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90}
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
38.若有如下程序:
#include"stdio.h"
main()
{chars[30];
strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");
printf("%s\n",s);}
則程序運行后的輸出結(jié)果是【】。
39.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{
charb[30];
strcpy(&b[0],"GH");
strcpy(&b[1],"GH");
strcpy(&b[2],"GH");
printf("%s\n",b);
}
40.執(zhí)行以下“for(i=1;i++<=4;i++);”語句后,變量i的值是()。
三、1.選擇題(20題)41.執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?x:++y;b=++x;c=y;
A.a=5,b=5,c=5
B.a=4,b=5,c=5
C.a=5,b=6,c=5
D.a=1,b=5,c=6
42.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A.log2nB.n/2C.nD.n+1
43.關系表中的每一行稱為一個()。
A.元組B.字段C.屬性D.碼
44.軟件需求分析階段的工作,可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()。
A.階段性報告B.需求評審C.總結(jié)D.都不正確
45.以下程序:#include<stdio.h>#include<string.h>main(){charstr[]="abcd\n\123\xab";printf("%d",(str));}運行后的輸出結(jié)果是()。
A.10B.9C.7D.14
46.有以下程序main()intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運行后的輸出結(jié)果是
A.1,1B.2,2C.3,3D.4,4
47.以下敘述中正確的是()
A.輸入項可以是一個實型常量,如scanf("%f",3.5);
B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");
C.當輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&f)
D.當輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf(“%f",&f);
48.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
49.有如下程序:main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}該程序的輸出結(jié)果是_____。
A.18B.19C.20D.21
50.在關系數(shù)據(jù)模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
51.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
52.有以下說明和定義語句structstudent{intage;charnum{8};};structstudentstu[3]={{20,“200401”},{21,“200402”),{19,“200403”}};structstudent*p=stu;以下選項中引用結(jié)構(gòu)體變量成員的表達式錯誤的是A.(p++)->numB.p->numC.(*p).numD.stu[3].age
53.在下列設備中,屬于輸出設備的是()
A.鍵盤B.鼠標C.顯示器D.軟盤
54.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項的類型應該對應匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯信息,不予接收輸入
55.有以下程序:#include<stdio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運行后的輸出結(jié)果是()。
A.12B.15C.16D.20
56.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是()
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.3者沒有明顯的包含關系
57.以下C程序的運行結(jié)果為______。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}
A.sum=10B.sum=55C.sum=100D.sum=88
58.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結(jié)果是______。
A.8B.10C.7D.11
59.設有下列語句inta=1,b=2,c;c=ab(b<<2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
60.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
四、選擇題(20題)61.有以下程序:
程序運行后的輸出結(jié)果是()。
62.
63.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
64.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
65.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
66.以下敘述中錯誤的是()。A.可以通過typedef增加新的類型
B.可以用typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedd可以為各種類型起別名,但不能為變量起別名
67.
68.
69.
70.若以下選項中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
71.在HTML頁面中哪些部分能夠插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
72.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。
A.兩個語句都是將變量a的值賦予變量P
B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P
C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a
D.兩個語句都是使P指向變量a
73.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
74.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。
A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);
75.
76.設有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語句中錯誤的是()
A.a++;B.b++C.c++;D.d++;
77.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。
A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯
78.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
79.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應消息C.消息頭和消息體D.實體消息和控制消息
80.有以下程序:
程序運行后的輸出結(jié)果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數(shù)值為13。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入8.4共10個得分,則輸出結(jié)果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.BC語言中,八進制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項A錯誤。浮點數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項C錯誤。選項D中,整型數(shù)據(jù)l0,000的表示形式是錯誤的。
2.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈式結(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
3.B
4.AC語言規(guī)定,注釋語句可以換行寫,并且一個“/*”和其后緊跟的第一個“*/”中間的部分是注釋內(nèi)容,并且注釋部分的內(nèi)容不參與程序的執(zhí)行,因此本題中沒有執(zhí)行“b=20”;這條語句。
5.D
6.D條件表達式形式:表達式1?表達式2:表達式3。當表達式1的值為非零值時,整個表達式的值是表達式2的值;當表達式1的值為零值時,整個表達式的值是表達式3的值。題干中的表達式是嵌套的條件表達式w﹤x?w:z﹤y?z:x,等價于w﹤x?w:(z﹤y?z:x)。由于w取值為4,x取值為3,所以w﹤x的值為零值,整個表達式的值為z﹤y?z:x,z取值為1,y取值為2,所以z﹤y的值為非零值,整個表達式的值為z的值1。本題答案為D選項。
7.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
8.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進行賦值時沒有錯誤。a=/*p+m賦值,在c語言中"/*"表示的注釋,所以答案選擇A。
9.A
10.DD。【解析】面向?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設計的特點。
11.B解析:投影操作是從關系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復元組,根據(jù)關系的性質(zhì),應消去這些完全相同的元組。這樣使得新關系的元組數(shù)小于或等于原來的元組數(shù)。
12.C
13.C
14.B
15.D要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時i=4跳出,循環(huán)結(jié)束。
16.B
17.C
18.C
19.C
20.D
21.變換型變換型
22.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
23.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。
24.事務型事務型解析:數(shù)據(jù)流圖中有眾多的加工,但必有一個加工是起核心作用的,即中心加工。由數(shù)據(jù)流圖導出結(jié)構(gòu)圖的關鍵是找出中心加工。一般來說,中心加工有兩種存在形態(tài),即數(shù)據(jù)流圖的兩種典型結(jié)構(gòu)形式:變換型和事務型。
25.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。
26.efghefgh解析:函數(shù)ss返回形參s所指向的符號串的后半部分,故p='efgh'。
27.邏輯關系邏輯關系
28.c<10或c<=9(a*100+b*10+c)+(a*100+b*10+a)c<10或c<=9\r\n(a*100+b*10+c)+(a*100+b*10+a)解析:本題使用窮舉法,用一個3重循環(huán)窮舉A、B、C可以組合成的所有三位數(shù),對每種情況來判斷是否滿足題目要求,滿足則輸出3個值。因為A、B、C分別代表一位數(shù),所以C的取值范圍是0~9,故第一空應該填c<10或c<=9。根據(jù)下面輸出的判斷條件k==t可知,k應該為每種情況下ABC+ABA的值,故應該填寫(a*100+b*10+c)+(a*100+b*10+a)或者其他等價表達式。
29.
30.rowa[row][colum]row\r\na[row][colum]解析:通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標,column的作用是用來記錄最大元素的列下標。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標,分別存放在變量row和colmnn中,根據(jù)題意,應該把行下標賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。
31.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。
32.(X>10&&x<100)||x<0或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)或0>x||(10<x&&x<100)或(括號有無都可以)(X>10&&x<100)||x<0\r\n\u3000\u3000或(10<x&&x<100)||x<0或x<0||(x>10&&x<100)\r\n\u3000\u3000或0>x||(10<x&&x<100)或(括號有無都可以)
33.*s-*t或-*t+*s*s-*t或-*t+*s解析:函數(shù)的兩個形參是兩個字符指針變量,字符串的首地址是指針變量的值,*s和*t表示字符串數(shù)組s和t的第一個字符,在while循環(huán)中,是通過s和t值的不斷變化來改變指針所指向的字符,要改變s和t所指不同字符的ASCII碼的差值,必須使用“*s-*t”得出。
34.i=0j=20i=0,j=20解析:該函數(shù)的第一個參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應要輸入的變量,所以說本題中應該原樣輸入i=,j=,后面分別給變量0和20,所以說空格處應該填入i=0,j=20。
35.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
36.元組元組解析:在關系模型中,數(shù)據(jù)結(jié)構(gòu)用單一的二維表結(jié)構(gòu)來表示實體及實體間的聯(lián)系。一個關系對應一個二維表。二維表中的列稱為屬性,屬性值的取值范圍稱為值域。二維表中的一行稱為一個元組。
37.2002shangxian2002shangxian解析:\'B\'的ASCII值是66。本題中指針變量p指向d,執(zhí)行第一個if語句時,條件成立,d=b;執(zhí)行第二個if語句時,條件不成立,故d=b,所以d.sno=2002,p->name'Shangxian'。
38.adf
39.GGGHGGGH解析:由于在函數(shù)main中定義了數(shù)組變量b,其將屏蔽全局變量b。對于一維數(shù)紐變量,其值為一常數(shù),等于數(shù)組首元素地址。strcpy(&b[0],'GH'),是將字符串'GH'復制到數(shù)組b中從首元數(shù)開始的空間中,此是b中的字符串為”叫”:strcpy(&b[1],'GH'),是將字符串'GH'復制到數(shù)組b中從第二個元素開始的空間中,此是b中的字符串為“GH”。執(zhí)行第三次strcpy函數(shù)后,b中的字符串為'GGGH'。
40.6
41.B解析:本題考查自加(++)、自減(--)運算符的使用?!?+i,--i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與運算:“i++,i--”,先使用此時的i的值參與運算,在使用i之后,再使i的值加1或者減1。
對于第1個表達式--x=4,y++=4。兩者相等,--x==y++為真,所以a=x=4,執(zhí)行完此語句后y的值是5。
第2個表達式b=++x,x的值先加1,然后賦給b,即b=x+1=5第一個表達式c=y=5。
42.C本題考查的是順序查找。在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。故本題答案為C。
43.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能唯一標識元組的最小屬性集稱為該表的鍵或碼。
44.B解析:需求分析是軟件定義時期的最后一個階段??梢愿爬?個方面:①需求獲取;②需求分析;⑧編寫需求規(guī)格說明書;④需求評審。
45.C
46.C解析:本題考核的知識點是for語句和continue語句的綜合應用。在本程序的for循環(huán)中,用到了一個continue語句,continue語句的作用是停止本次循環(huán),即不執(zhí)行循環(huán)體內(nèi)continue語句后面的其他語句,繼續(xù)下次循環(huán)的條件判斷。首先在for循環(huán)中n自加1(值變?yōu)?),然后執(zhí)行后面的if語句,由于if語句后面括號的表達式(1%3!=0)的值為真,程序執(zhí)行continue語句,回到for循環(huán)的開始部分,并且判斷for循環(huán)中的條件表達式(n<k)為真,重復執(zhí)行“n++;”語句,如此循環(huán)直到n=3時,if語句判定條件中表達式(3%3!0)的值為假,程序執(zhí)行if語句后面的“k--”語句,此時k的值為3,不滿足“n<k”,退出for循環(huán)。故最后的k和n的值為3和3,選項C符合題意。
47.D
48.A解析:在C語言中,動態(tài)存儲區(qū)域中存放的變量在使用時才分配內(nèi)存空間,函數(shù)調(diào)用時返回的地址和自動類局部變量等存放在動態(tài)存儲區(qū)域中。auto變量和register變量都屬于自動類局部變量,因此選項A正確。static說明的變量為靜態(tài)變量,靜態(tài)變量在內(nèi)存的靜態(tài)存儲中占據(jù)著永久的存儲單元,直至程序運行結(jié)束。extern說明的變量為外部變量,屬于全局變量,全局變量在整個程序運行期間都占用內(nèi)存空間。
49.A解析:題中的外循環(huán)只執(zhí)行了2次:
第1次:a[1][0]=3,a[1][1]=4,所以s=7;
第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
50.D解析:數(shù)據(jù)庫表中字段轉(zhuǎn)化為屬性,把記錄的類型轉(zhuǎn)化為關系模式。
51.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結(jié)點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結(jié)點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結(jié)點A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。
52.D本題考核的知識點是結(jié)構(gòu)體數(shù)組元素成員的引用。結(jié)構(gòu)體變量也有地址,因此可以把它的地址賦值給一個指針變量,然后通過該指針變量來引用結(jié)構(gòu)體的成員,選項A和選項B就是通過指針變量來引用結(jié)構(gòu)體的成員,故選項A和選項B都正確,也可以通過結(jié)構(gòu)體數(shù)組元素的成員引用,選項C和選項D屬于這種情況,而在選項D中stu[3].age不正確,因為結(jié)構(gòu)體數(shù)組stu共有三個元素,其下標應該為0,1,2.所以,4個選項中選項D符合題意。
53.C
54.B解析:在scanf函數(shù)的格式控制中,格式說明的類型與輸入項的類型必須一一對應匹配,如不匹配將導致數(shù)據(jù)輸入出現(xiàn)錯誤,但是系統(tǒng)并不報錯。
55.A解析:本題考查帶參數(shù)的宏定義,參數(shù)只是簡單的替換而不是求出其值后再替換形式參數(shù)。本題中用a++替換X,用b++替換Y,再求(a++)*(b++)的值,即3*4的值,其結(jié)果為12。
56.B解析:數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,簡稱DBS)包括數(shù)據(jù)庫(Database,簡稱DB)、數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS):數(shù)據(jù)庫管理員、硬件和軟件。
57.B
58.A解析:本題中定義一個全局變量a和一個局部變量a。局部變量和全局變量的不同在于,局部變量的存儲單元都是在進入這些局部變量所在的函數(shù)體(或復合語句)時生成,退出其所在的函數(shù)體(或復合語句)時消失,而全局變量是在函數(shù)外部任意位置上定義的變量,它的作用域從變量定義的位置開始,到整個源文件結(jié)束為止。若全局變量和某一函數(shù)中的局部變量同名,則在該函數(shù)中,此全局變量被屏蔽,在該函數(shù)內(nèi),起作用的將是局部變量,與同名的全局變量不發(fā)生任何關系。在程序中首先定義了變量s并賦值為0,接著在嵌套的復合語句{}中定義了變量a并賦初值為5,接著執(zhí)行語句s+=a+a;在這條語句中a加1,但表達式a++還是原來的值,故s=s+5,s為5,程序執(zhí)行到外層,此時{}內(nèi)定義的變量a不再有效,此時的變量a為{}之前定義的且初值為3,接著執(zhí)行{}后面的語句s+=a++;相當于執(zhí)行語句s=s+(++);即s=5+3,最后值為8,所以最后輸出的s值為8。所以4個選項中A正確。
59.D解析:變量b的初值等于2,所以表達式b<<2表示b的值二進制左移兩位,即擴大4倍,所以變量b的等于8。然后與a的值1進行異或運算,得9。
60.B解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調(diào)用形式為:函數(shù)名(),當所調(diào)用的函數(shù)用于求出某個值時,函數(shù)的調(diào)用可作為表達式出現(xiàn)在允許表達式出現(xiàn)的任何地方,本題中調(diào)用語句的參數(shù)個數(shù)為2個。
61.A外循環(huán)第一次i的值為1,內(nèi)循環(huán)第一次j的初值為l,打印1*1=1;內(nèi)循環(huán)第二次j的值為2,打印1$2=2;內(nèi)循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第二次i的值為2,內(nèi)循環(huán)第一次j的初值為2,打印2*2=4;內(nèi)循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內(nèi)循環(huán)。外循環(huán)第三次i的值為3,內(nèi)循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內(nèi)循環(huán)。
62.D
63.AC語言規(guī)定case后面跟的必須是整型常量表達式。進入case后,如果沒有遇到break語句就會一直往下執(zhí)行,后面其他case或default分支的語句也會被執(zhí)行到,直到遇到break,或者執(zhí)行到整個switch語句塊的末尾。題目中給出了三個case語句:case0、case1、case2。當x為1時,從case1語句開始執(zhí)行,因為沒有break語句,將一直執(zhí)行到函數(shù)末尾結(jié)束,即執(zhí)行case1、case2兩條語句。執(zhí)行完case1時,a=1,b=0;執(zhí)行完case2時,a=2,b=1。
64.A由于a==l和a!=1兩者互斥,即總有一個為真,因此二者的或也必定為真。
65.C本題中x++中的x值應當是先引用,后自加,在此基礎上,逐步將值帶入程序中,即可得到正確的答案。
66.Atypede偽原類型起個別名,并沒有增加新的類型,所以答案選擇A)。
67.C
68.C
69.D
70.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側(cè)表達式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。
71.C
72.C“P”是指針變量,指向一個地址:“*P”為P指針所指向地址的內(nèi)容“&”是取變量地址。
73.A由題可知fun的參數(shù)為變量,而a[15]為常量,所以答案為A。
74.B在C語名中規(guī)定進行強制類型轉(zhuǎn)換的格式是:(類型名)變量名;并且給表達式賦值。
75.B
76.D++是自增運算符,作用是使變量的值增加1,選項D中的d不是變量,而是一個標識符,它代表常量2,常量是不允許進行自增運算的。故本題答案為D。
77.D解析:因為字符數(shù)組s1)中的數(shù)組名s表示的是一個地址常量。所以語句“s+=2;”不能將指針在當前位置的基礎上再向后移動兩位,因而程序編譯時出錯。
78.B水平制表符中,'\t'表示的是橫向跳若干格;選項B中,'\039'錯誤,'\039'是八進制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號;選項D中,'\n'表示的是換行。
79.B
80.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個元素和第4個元素互換,第2個元素和第3個元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個元素和第10個元素互換,第6個和第9個元素互換,第7個元素和第8個元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個元素和第10個元素互換,第2個元素和第9個元素互換……依此類推。因此B選項正確。
81.(1)錯誤:switch(g);
正確:switch(g)
(2)錯誤:case1:case2:return1;
正確:case1;case2:return1;
【解析】此題考查C語言的語法規(guī)則,switch(表達式)后不應該帶有“;”,case語句常量后應該是“:”。switch語句的一般形式如下:
82.1doublefun(doublea[],intn)Doublesum=0,max,min;inti;max=min=a[0];for(i=0;i<n;i++){</n;i++)<n;i++)sum=sum+a[i];</n;i++)if(max<a[i])max=a[i];<n;i++)if(min>a[i])min=a[i];</n;i++)<n;i++)sum=sum-max-min;</n;i++)<n;i++)return(sum/(n-2));</n;i++)<n;i++)}</n;i++)<n;i++)設定3個變量,sum存放和值,max存放最大值,min存放最小值。max和min都賦為數(shù)組中第1個元素的值。利用循環(huán)將數(shù)組中元素累加到sum中,并找出最大值和最小值。sum值減去最大值和最小值。函數(shù)返回sum除以(元素個數(shù)減2)得平均值。</n;i++)2022年江蘇省連云港市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下選項中,合法的一組C語言數(shù)值常量是()。
A.028.5e-3-0xf
B.12.OXa234.5eO
C..1774c1.5Oabc
D.0x8A10,0003.e5
2.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.數(shù)據(jù)所占的存儲空間
B.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式
C.數(shù)據(jù)在計算機中的順序存儲方式
D.存儲在計算機外存中的數(shù)據(jù)
3.計算機算法必須具備輸入、輸出和()等5個特性。
A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性
4.有以下程序:main{inta=0,b=0;a=10;/*給a賦值b=20;給b賦值*/printf(“a+b=%d\n”,a+b);/*輸出計算機結(jié)果*/}程序運行后的輸出結(jié)果是()。A.a+b=10B.a+b=30C.30D.出錯
5.
6.有以下程序:
程序運行后的輸出結(jié)果是()。A.4B.2C.3D.1
7.若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
8.有以下程序:#include<stdio.h>main(){inta,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}編譯時編譯器提示錯誤信息,你認為出錯的語句是()。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;
9.以下程序的運行結(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=*(p+5):printf("%d%d\n",*p,*q);}
A.運行后報錯B.66C.612D.55
10.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
11.對一個關系投影操作以后,新關系的元組個數(shù)______原來關系的元組個數(shù)。
A.小于B.小于或等于C.等于D.大于
12.C語言提供的合法關鍵字是()
A.switchB.cherC.caseD.default
13.
14.判斷一個棧ST(最多元素為Maxsize)為空的條件是()。
A.ST->top!==一1
B.ST->top==-1
C.ST->top!==Maxsize-1
D.ST->top==Maxsize-1
15.若希望下列的程序運行后輸出25,程序空白處的正確選項是()。main{intid=50,a[]=(7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i
16.采用開放定址法處理散列表的沖突時,其平均查找長度()
A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突
17.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結(jié)果是()
A.[3,2,5,7,4,6,8]
B.[2,3,5,7,4,6,8]
C.[2,3,4,5,7,8,6]
D.[2,3,4,5,6,7,8]
18.
19.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈式存儲結(jié)構(gòu)
20.以下是if語句的基本形式:if
(表達式)語句,其中表達式A.A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式
二、2.填空題(20題)21.數(shù)據(jù)流的類型有______和事務型。
22.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
23.以下程序運行后的輸出結(jié)果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
24.數(shù)據(jù)流圖有兩種典型的結(jié)構(gòu)形式,它們分別是變換型和【】。
25.閱讀下面程序,則執(zhí)行后的輸出結(jié)果是【】。
#include"stdio.h"
main()
{intx,y,z;
x=1;y=2;z=3;
if(x>y)if(x>z)printf("%d",x);
elseprintf("%d",y);
printf("%d\n",z);}
26.以下程序的運行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
}
27.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
28.以下程序的功能是求下列算式中A、B、C的值,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inta,b,c,k,t=348;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;【】;c++)
{k=【】;
if(k==t)
printf("A=%dB=%dC=%d\n",a,b,c);
}
}
29.設在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
30.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標。請?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
31.若a是int型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。
32.表示條件:10<x<100或x<0的C語言表達式【】。
33.函數(shù)mycmp(char*s,char*t)的功能提比較字符串s和t的大小,當s等于t時返回0,當s>t返回正值,當s<t時返回負值。請?zhí)羁铡?/p>
mycmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}
return(【】)
}
34.若有程序:
main()
{inti,j;
scanq("i=%d,j=%d",&i,&j);
printf("i=%d,j=%d\n",i,j);
}
要求給i賦10,給j賦20,則應該從鍵盤輸入【】。
35.下面程序的運行結(jié)果是:【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf(“%d%d\n”,i1,i2);
}
36.與二維表中的“行”的概念最接近的概念是()。
37.以下程序的運行結(jié)果是【】。
#include<string.h>
typedefstructstudent{
charname[10];
longsno);
floatscore
}STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90}
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(,)>0)d=b;
if(strcmp(,)>0)d=c;
printf("%1d%s\n",d.sno,p->name);
}
38.若有如下程序:
#include"stdio.h"
main()
{chars[30];
strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");
printf("%s\n",s);}
則程序運行后的輸出結(jié)果是【】。
39.下面程序的輸出結(jié)果是【】。
charb[]="ABCD";
main()
{
charb[30];
strcpy(&b[0],"GH");
strcpy(&b[1],"GH");
strcpy(&b[2],"GH");
printf("%s\n",b);
}
40.執(zhí)行以下“for(i=1;i++<=4;i++);”語句后,變量i的值是()。
三、1.選擇題(20題)41.執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=5,y=4;inta,b,c;a=(--x==y++)?x:++y;b=++x;c=y;
A.a=5,b=5,c=5
B.a=4,b=5,c=5
C.a=5,b=6,c=5
D.a=1,b=5,c=6
42.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為()。
A.log2nB.n/2C.nD.n+1
43.關系表中的每一行稱為一個()。
A.元組B.字段C.屬性D.碼
44.軟件需求分析階段的工作,可以分為4個方面:需求獲取、需求分析、編寫需求規(guī)格說明書以及()。
A.階段性報告B.需求評審C.總結(jié)D.都不正確
45.以下程序:#include<stdio.h>#include<string.h>main(){charstr[]="abcd\n\123\xab";printf("%d",(str));}運行后的輸出結(jié)果是()。
A.10B.9C.7D.14
46.有以下程序main()intk=4,n=0;for(;n<k;){n++;if(n%3!=0)continue;k--;}printf("%d,%d\n",k,n);程序運行后的輸出結(jié)果是
A.1,1B.2,2C.3,3D.4,4
47.以下敘述中正確的是()
A.輸入項可以是一個實型常量,如scanf("%f",3.5);
B.只有格式控制,沒有輸入項,也能正確輸入數(shù)據(jù)到內(nèi)存,例如:scanf("a=%d,b=%d");
C.當輸入一個實型數(shù)據(jù)時,格式控制部分可以規(guī)定小數(shù)點后的位數(shù),例如:scanf("%4.2f",&f)
D.當輸入數(shù)據(jù)時,必須指明變量地址,例如:scanf(“%f",&f);
48.在C語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是()。
A.auto和register
B.extern和register
C.auto和static
D.static和register
49.有如下程序:main(){inta[3][3]={{1,2},{3,4),{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}該程序的輸出結(jié)果是_____。
A.18B.19C.20D.21
50.在關系數(shù)據(jù)模型中,通??梢园?)稱為屬性,其值稱為屬性值。
A.記錄B.基本表C.模式D.字段
51.有下列二叉樹,對此二叉樹中序遍歷的結(jié)果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
52.有以下說明和定義語句structstudent{intage;charnum{8};};structstudentstu[3]={{20,“200401”},{21,“200402”),{19,“200403”}};structstudent*p=stu;以下選項中引用結(jié)構(gòu)體變量成員的表達式錯誤的是A.(p++)->numB.p->numC.(*p).numD.stu[3].age
53.在下列設備中,屬于輸出設備的是()
A.鍵盤B.鼠標C.顯示器D.軟盤
54.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項的類型應該對應匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯信息,不予接收輸入
55.有以下程序:#include<stdio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(xiàn)(a++,b++));}程序運行后的輸出結(jié)果是()。
A.12B.15C.16D.20
56.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關系是()
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.3者沒有明顯的包含關系
57.以下C程序的運行結(jié)果為______。main(){inti=1,sum=0;loop:if(i<=10){sum+=i;i++;gotoloop;}printf("sum=%d\n",sum);}
A.sum=10B.sum=55C.sum=100D.sum=88
58.有以下程序inta=3;main(){ints=0;{inta=5;s+=a++;}s+=a++;printf("%d\n",s);}程序運行后的輸出結(jié)果是______。
A.8B.10C.7D.11
59.設有下列語句inta=1,b=2,c;c=ab(b<<2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
60.下面函數(shù)調(diào)用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
四、選擇題(20題)61.有以下程序:
程序運行后的輸出結(jié)果是()。
62.
63.有如下程序:main{intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++.b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出結(jié)果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
64.若a是數(shù)值類型,則邏輯表達式(a==1)II(a!=1)的值是()。
A.1B.0C.2D.不知道a的值,不能確定
65.下面程序的輸出結(jié)果是
main
{
intx=3,y=6,a=0;
while(x++!=(y-=1))
{
a+=1;
if(y<x)
break;
}
printf("x=%d,y=%d,a=%d\n",x,y,a);
}
A.x=4,y=4,a=1B.x=5,y=5,a=1
C.x=5,y=4,a=1D.x=5,y=4,a=3
66.以下敘述中錯誤的是()。A.可以通過typedef增加新的類型
B.可以用typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedd可以為各種類型起別名,但不能為變量起別名
67.
68.
69.
70.若以下選項中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
71.在HTML頁面中哪些部分能夠插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
72.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。
A.兩個語句都是將變量a的值賦予變量P
B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P
C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a
D.兩個語句都是使P指向變量a
73.以下程序的主函數(shù)中調(diào)用了在其面前定義的fun函數(shù)#include<stdio.h>...main(){doublea[15],k;k=fun(a);...}則以下選項中錯誤的fun函數(shù)首部是()。、A.doublefun(doublea[l5])
B.doublefun(double*a)
C.doublefun(doublea[])
D.doublefun(doublea)
74.若變量a,b已正確定義,且b已正確賦值,則合法的語句是()。
A.b=double(b);B.(int)a=(int)b;C.a=a++=5;D.a=double(b);
75.
76.設有以下定義inta=0;doubleb=1.25;charc=’A’;#defined2則下面語句中錯誤的是()
A.a++;B.b++C.c++;D.d++;
77.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。
A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯
78.下列選項中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
79.HTTP協(xié)議的消息有()兩種類型。
A.發(fā)送消息和接收消息B.請求消息和響應消息C.消息頭和消息體D.實體消息和控制消息
80.有以下程序:
程序運行后的輸出結(jié)果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項的斐波拉契數(shù)值為13。請改正程序中的錯誤,使它能得出正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設計題(1題)82.使用vc++2010打開文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是在一組得分中,去掉一個最高分和一個最低分,然后求平均值,并通過函數(shù)返回該值。函數(shù)形參a指向存放得分的數(shù)組,形參n中存放得分個數(shù)(n>2)。例如,若輸入8.4共10個得分,則輸出結(jié)果為8.687500。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.BC語言中,八進制數(shù)其開頭必須是數(shù)字“0”,其數(shù)字包括0~7,因此選項A錯誤。浮點數(shù)據(jù)的指數(shù)形式表示中,字母e或E之后的指數(shù)必須為整數(shù),所以選項C錯誤。選項D中,整型數(shù)據(jù)l0,000的表示形式是錯誤的。
2.B解析:數(shù)據(jù)的存儲結(jié)構(gòu),又稱為數(shù)據(jù)的物理結(jié)構(gòu),是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存放形式,數(shù)據(jù)的存儲結(jié)構(gòu)有順序結(jié)構(gòu)、鏈式結(jié)構(gòu)、散列結(jié)構(gòu)和索引結(jié)構(gòu)等。
3.B
4.AC語言規(guī)定,注釋語句可以換行寫,并且一個“/*”和其后緊跟的第一個“*/”中間的部分是注釋內(nèi)容,并且注釋部分的內(nèi)容不參與程序的執(zhí)行,因此本題中沒有執(zhí)行“b=20”;這條語句。
5.D
6.D條件表達式形式:表達式1?表達式2:表達式3。當表達式1的值為非零值時,整個表達式的值是表達式2的值;當表達式1的值為零值時,整個表達式的值是表達式3的值。題干中的表達式是嵌套的條件表達式w﹤x?w:z﹤y?z:x,等價于w﹤x?w:(z﹤y?z:x)。由于w取值為4,x取值為3,所以w﹤x的值為零值,整個表達式的值為z﹤y?z:x,z取值為1,y取值為2,所以z﹤y的值為非零值,整個表達式的值為z的值1。本題答案為D選項。
7.B解析:本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
8.A本題考查指針,pl=&k表示P指向k的地址,則*p=k,依次類推,在對指針進行賦值時沒有錯誤。a=/*p+m賦值,在c語言中"/*"表示的注釋,所以答案選擇A。
9.A
10.DD?!窘馕觥棵嫦?qū)ο笤O計方法與面向過程設計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設計的特點。
11.B解析:投影操作是從關系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復元組,根據(jù)關系的性質(zhì),應消去這些完全相同的元組。這樣使得新關系的元組數(shù)小于或等于原來的元組數(shù)。
12.C
13.C
14.B
15.D要想使程序輸出25,則j-40=25,j=65,而j初值是50,所以填入for循環(huán)的語句,使引用的數(shù)組元素累加65-50=15即可,D選項中,i下標從0開始,i=2指向第3個數(shù)50+a[2]=50+10=60,繼續(xù)循環(huán)60+a[3]=60+5=65,此時i=4跳出,循環(huán)結(jié)束。
16.B
17.C
18.C
19.C
20.D
21.變換型變換型
22.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
23.6262解析:本題考查的是宏定義。帶參數(shù)的宏定義是按#indefine命令行中指定的字符串從左到右進行轉(zhuǎn)換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。
24.事務型事務型解析:數(shù)據(jù)流圖中有眾多的加工,但必有一個加工是起核心作用的,即中心加工。由數(shù)據(jù)流圖導出結(jié)構(gòu)圖的關鍵是找出中心加工。一般來說,中心加工有兩種存在形態(tài),即數(shù)據(jù)流圖的兩種典型結(jié)構(gòu)形式:變換型和事務型。
25.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結(jié)合。因為x不大于y,所以執(zhí)行printf('%d\\n',z)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東理工學院《畜牧機械》2023-2024學年第一學期期末試卷
- 廣東科技學院《譜學導論》2023-2024學年第一學期期末試卷
- 廣東江門幼兒師范高等??茖W校《藏藥材栽培學》2023-2024學年第一學期期末試卷
- 廣東行政職業(yè)學院《人力資源綜合實訓》2023-2024學年第一學期期末試卷
- 廣東工程職業(yè)技術(shù)學院《創(chuàng)意傳播管理》2023-2024學年第一學期期末試卷
- 廣東第二師范學院《Photoshop圖像處理》2023-2024學年第一學期期末試卷
- 《高效績團隊》課件
- 廣安職業(yè)技術(shù)學院《房地產(chǎn)開發(fā)》2023-2024學年第一學期期末試卷
- 贛州職業(yè)技術(shù)學院《翻譯概論》2023-2024學年第一學期期末試卷
- 保潔消防培訓課件
- 求職簡歷 課件
- 2024年國網(wǎng)公司企業(yè)文化與職業(yè)道德試考試題庫(含答案)
- 環(huán)境監(jiān)測實驗室事故應急預案
- 2024院感年終總結(jié)報告
- 房地產(chǎn)中介公司業(yè)務管理制度
- 電大《生產(chǎn)與運作管理》2023-2024期末試題及答案(試卷代號2617)
- 中國腫瘤藥物治療相關惡心嘔吐防治專家共識(2022年版)解讀
- PLC應用技術(shù)(三菱機型)三菱大中型PLC
- 《用戶體驗設計導論》
- 美團外賣運營知識試題
- 航空概論學習通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論