版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年內(nèi)蒙古自治區(qū)烏海市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測(cè)試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下列不屬于C語言關(guān)鍵字的是()。A.A.default
B.register
C.enum
D.external
2.若變量x、y已正確定義并賦值,以下符合C語言語法的表達(dá)式是()。
A.x+1=yB.++x,y=x--C.x=x+10=x+yD.double(x)/10
3.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
4.下面程序的運(yùn)行結(jié)果是()。
#inelude<stdio.h>
voiddel(char*s)
{inti,j;
char*a;
a=s:
for(i=0,j=0;a[i]!='\0';i++)
{if(a[i]>='0'&&a[i]<='9')
{s[j]=a[i];
j++;
}
s[j]='\0';
}
}
main
{char*s="aa89gggh";
del(s):
printf("\n%s",s);
}A.A.1B.2C.3D.4
5.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫劃分原則是()。
A.記錄長度B.文件的大小C.聯(lián)系的復(fù)雜程度D.數(shù)據(jù)之間的聯(lián)系方式
6.閱讀以下程序及對(duì)程序功能的描述,其中正確的是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf(“Entertheinfilename:\n”);scanf(“%s”,infile);printf(“Entertheoutfilename:\n”);scanf(“%s”,outfile);if((in=foen(infile,“r”))==NULL)printf(“cannotopeninfile\n”);exit(0);if((out=fopen(outfile,“w”))==NULL)printf(“cannotopenoutfile\n”);exit(0);while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個(gè)磁盤文件合二為一的功能
C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中
D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出
7.
8.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)該使用函數(shù)______。A.getc()B.gets()C.getchar()D.scanf()
9.在一個(gè)元素個(gè)數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時(shí)間復(fù)雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)
10.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語言的先進(jìn)性D.程序的易讀性
11.下面程序段的運(yùn)行結(jié)果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
12.
13.一個(gè)長度為99的循環(huán)鏈表,指針A和指針B都指向了鏈表中的同一個(gè)節(jié)點(diǎn),A以步長為1向前移動(dòng),B以步長為3向前移動(dòng),一共需要同時(shí)移動(dòng)多少步A和B才能再次指向同一個(gè)節(jié)點(diǎn)()。
A.99B.100C.101D.49E.50F.51
14.下列關(guān)于標(biāo)識(shí)符的說法中錯(cuò)誤的是
A.合法的標(biāo)識(shí)符是由字母、數(shù)字和下劃線組成
B.C語言的標(biāo)識(shí)符中,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符
C.C語言的標(biāo)識(shí)符可以分為三類,即關(guān)鍵字、預(yù)定義標(biāo)識(shí)符和用戶標(biāo)識(shí)符
D.用戶標(biāo)識(shí)符與關(guān)鍵字不同時(shí),程序在執(zhí)行時(shí)將給出出錯(cuò)信息
15.設(shè)整型數(shù)i=5,則printf("%d",i+++++i);的輸出為______。
A.10B.11C.12D.語法錯(cuò)誤
16.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結(jié)果是A.A.0X0
B.0x0
C.0
D.0xABC
17.有如下程序:
longfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn(2);
}
main()
{printf("%d\n",fib(3));}
該程序的輸出結(jié)果是A.A.2B.4C.6D.8
18.第
24
題
下面程序段的運(yùn)行結(jié)果是
char*p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
19.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
20.對(duì)于n個(gè)元素,下列哪種操作時(shí)間復(fù)雜度不是O(nlogn)()
A.凸包計(jì)算B.LC搜索C.有序序列數(shù)字查找D.基于比較的排序
二、2.填空題(20題)21.下面程序的功能是:計(jì)算1~20之間的奇數(shù)之和與偶數(shù)之和,請(qǐng)?zhí)羁帐钩绦蚬δ芡暾?/p>
#include<stdio.h>
main()
{inta=0,b=0,c=0,i;
for(i=0;i<=20;i+=2)
{a+=i;
();
c+=b;
}
printf("偶數(shù)之和=%d\n",A);
printf("奇數(shù)之和=%d\n",c-21);
}
22.以下程序中,函數(shù)fun的功能是計(jì)算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計(jì)算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請(qǐng)?zhí)羁铡?/p>
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
23.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}
24.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請(qǐng)寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
25.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
26.以下程序運(yùn)行后的輸出結(jié)果是______。
#inClude<strinq.h>
char*ss(char*s)
{char*p;t;
p=S+1;t=*s;
while(*p){*(p-1)=*p;p++;}
*(p-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
27.若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁?,以便為“讀”而打開此文件:
fp=fopen(【】);。
28.以下程序運(yùn)行后的輸出結(jié)果是______。
voidfun(intx,inty)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{
intx=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
29.算法的復(fù)雜度主要包括空間復(fù)雜度和______復(fù)雜度。
30.單元測(cè)試又稱模塊測(cè)試,一般采用【】測(cè)試。
31.下列程序的功能是輸入一個(gè)整數(shù),判斷其是否是素?cái)?shù),若為素?cái)?shù)則輸出1,否則輸出0。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,x,y=1;
scanf("%d",&x);
for(i=2;i<=x/2;i++)
if【】{y=0;break;}
printf("%d\n",y);
}
32.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*fl)int(*12)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運(yùn)行后,輸出結(jié)果是【】
33.表示條件;10<x<100或x<0的C語言表達(dá)式是【】。
34.數(shù)據(jù)庫保護(hù)分為安全性、控制性、______、并發(fā)性控制和數(shù)據(jù)恢復(fù)。
35.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
36.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
37.若輸入21、23、34、11、2、6,則以下程序的運(yùn)行結(jié)果【】。
main()
{inti;
char+p,num[6];
for(i=0;i<5;i++)
scanf("%d,",&num[i]);
scanf("%d",&num[5]);
p=&num[0];
sort(p,6);
for(i=0;i<5;i++)printf("%d,",num[i]);
printf("%d\n",num[5]);
}
sort(p,m)
char*p;
intm;
{inti;
charchange,*p1,*p2;
for(i=0;i<m/2;i++)
{p1=p+i;
p2=p+(m-1-i);
change=*p1;
*p1=*p2;
*p2=change;
}
}
38.x、y、x均為int型變量,描述"x、y和z中至少有兩個(gè)為正數(shù)"的表達(dá)式是______。
39.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)。
40.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
三、1.選擇題(20題)41.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦值40000的正確語句是()
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;
42.有如下程序;
intfunc(inta,intb)
{return(a+b);}
main()
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);printf("%\d\n",r);}
該程序的輸出的結(jié)果是______。
A.12B.13C.14D.15
43.以下描述中正確的是()。
A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句
B.do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式.后面不能寫分號(hào)
C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進(jìn)行判斷
D.do-while循環(huán)中,根據(jù)情況可以省略while
44.以下程序的功能是:給r輸入數(shù)據(jù)后計(jì)算半徑為r的圓面積s。程序在編譯時(shí)出錯(cuò)。main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*π*r*r*r;printf("s=%f\n",s);}出錯(cuò)的原因是______。
A.注釋語句書寫位置錯(cuò)誤
B.存放圓半徑的變量不應(yīng)該定義為整型
C.輸出語句中格式描述符非法
D.計(jì)算圓面積的賦值語句中使用了非法變量
45.當(dāng)變量c的值不為2、4、6時(shí),值也為"真"的表達(dá)式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
46.當(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
47.C語言運(yùn)算對(duì)象必須是整型的運(yùn)算符是______。
A.%=B./C.=D.<=
48.當(dāng)k的值不為0時(shí),在下列選項(xiàng)中能夠?qū)的值賦給變量m,n的是
A.m=k=n
B.(m=k)&&(n=k)
C.(m=k)||(n=k)
D.(k=m)&&(n=k)
49.在數(shù)據(jù)庫管理技術(shù)的發(fā)展中,數(shù)據(jù)獨(dú)立性最高的是()。A.人工管理B.文件系統(tǒng)C.數(shù)據(jù)庫系統(tǒng)D.數(shù)據(jù)模型
50.算法中,對(duì)需要執(zhí)行的每一步操作,必須給出清楚、嚴(yán)格的規(guī)定。這屬于算法的A.正當(dāng)性B.可行性C.確定性D.有窮性
51.若有下列說明和語句,已知int型數(shù)據(jù)占2個(gè)字節(jié),則下列語句的輸出結(jié)果是()。structst{chara[15];intb;doublec;};printf("%d",sizcof(structst));
A.15B.8C.25D.2
52.若指針ps已正確定義,要使ps指向能夠存儲(chǔ)8個(gè)字符的動(dòng)態(tài)存儲(chǔ)單元,以下不正確的語句是()
A.ps=(char*)malloc(8);
B.ps=(char*)malloc(sizeof(char)*8);
C.ps=(char*)calloc(8,sizeof(char))
D.ps=8*(char*)malloc(sizeof(char))
53.若有定義:intaa[8]則以下表達(dá)式中不能代表數(shù)組元aa[1]的地址的是
A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+1
54.有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(j<6;c[i]=getchar(),i++);for(i=0,i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結(jié)果為______。
A.abcdefB.abcdC.abcdD.abcdef
55.下列程序的運(yùn)行結(jié)果是()
#include<stdio.h>
main()
{intx=5,a=1,b=2,c=5,d=0;
if(a<b)
if(b!=3)
if(!c)
x=1;
else
if(d)x=l;
elsex=-1;
printf("%d",x);
}
A.-1B.0C.1D.不確定的值
56.下列選項(xiàng)中正確的語句組是()。
A.chars[8];s={"Beijing"};
B.char*s;s={"Beijing"};
C.chars[8];s="Beijing";
D.char*s;s="Beijing";
57.有以下程序:point(char*p){P+=3;)main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序運(yùn)行后的輸出結(jié)果是()。
A.aB.bC.cD.d
58.數(shù)據(jù)庫管理系統(tǒng)提供給用戶的接口是()
A.過程化語言B.數(shù)據(jù)庫語言C.宿主語言D.面向?qū)ο笳Z言
59.設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達(dá)式中與代數(shù)式計(jì)算結(jié)果不相符的是
A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)
60.有如下程序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
四、選擇題(20題)61.一些重要的程序設(shè)計(jì)語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
62.
63.
64.設(shè)有定義:char*C;以下選項(xiàng)中能夠使C正確指向一個(gè)字符串的是()。
A.charstr()=”string”;C=str;
B.scanf(”%s”,C.;
C.c=getchar();
D.*c=”strin9”;
65.若變量x,y已正確定義并賦值,以下符號(hào)C語言語法的表達(dá)式是()。
A)++x,y=x--B)x+1=y
C)x=x+10=x+yD)double(x)/10
66.以下敘述中正確的是()。
A.預(yù)處理命令行必須位于C源程序的起始位置
B.在C語言中,預(yù)處理命令行都以“#”開頭
C.每個(gè)C程序必須在開頭包含預(yù)處理命令行:#include
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
67.若程序中有宏定義行:
68.軟件生命周期中,花費(fèi)最多的階段是()。
A.詳細(xì)設(shè)計(jì)B.軟件編碼C.軟件測(cè)試D.軟件維護(hù)
69.在C語言程序中可用做用戶標(biāo)識(shí)符的是()。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG
70.
71.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4B.34C.31D.32
72.以下選項(xiàng)中,與k=n++完全等價(jià)的表達(dá)式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
73.給出以下定義:
則正確的敘述為()。
A.數(shù)組m和數(shù)組n等價(jià)B.數(shù)組m和數(shù)組n的長度相同C.數(shù)組m的長度小于數(shù)組n的長度D.數(shù)組m的長度大于數(shù)組n的長度
74.在C程序中有如下語句:char*func(intx,inty);它是()。
A.對(duì)函數(shù)func的定義。B.對(duì)函數(shù)func的調(diào)用。C.對(duì)函數(shù)func的原型說明。D.不合法的
75.
76.
77.
78.
79.
80.請(qǐng)選出以下語句的輸出結(jié)果Printf("%d\n",strlen("\t\"\065\xff\n"));
A.5B.14C.8D.輸出項(xiàng)不合法,無正常輸出
五、程序改錯(cuò)題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參n。計(jì)算下列公式的值:t=1-1/2+1/3-1/4+…+(-1)(n+1)/n例如,若輸入6,則應(yīng)輸出0.616667。請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按列的順序依次存放到一維數(shù)組中,將一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(int(*s)[10],int*b,int*n,intmm,intnn){}main(){intw[10][10]={{33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;inta[100]={0},n=0;printf(“Thematrix:\n”);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%3d”,w[i][j]);printf(“\n”);}fun(w,a,&n,3,4);printf(“TheAarray:\n”);for(i=0;i<n;i++)<p=""></n;i++)<>printf(“%3d”,a[i]);}
參考答案
1.Dregister聲明寄存器變量enum聲明枚舉類型default開關(guān)語句中的“其他”分支
2.B不能將變量賦給表達(dá)式,故A、C選項(xiàng)錯(cuò)誤。D選項(xiàng)中強(qiáng)制類型轉(zhuǎn)換表達(dá)式應(yīng)寫成“(double)x/10”。故本題答案為B選項(xiàng)。
3.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。
4.D本題中del(char*s)函數(shù)實(shí)現(xiàn)的功能是:逐個(gè)讀入S數(shù)組中的字符,如果遇到數(shù)字,則將數(shù)字存在s中,遇到非數(shù)字字符則跳過。所以最后輸出的應(yīng)該是字符串S中所有的數(shù)字的個(gè)數(shù)。
5.D層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu),網(wǎng)狀模型是一個(gè)不加任何條件限制的無向圖,關(guān)系模型采用二維表來表示,所以三種數(shù)據(jù)庫的劃分原則是數(shù)據(jù)之間的聯(lián)系方式。
6.C
7.C
8.B解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符,且只能接受—個(gè)字符(回車符也算是—個(gè)字符),所以getchar()不能用宋讀入字符串。scanf()函數(shù)要求按—定的格式來輸入,若同時(shí)輸入多個(gè)字符串,則以空格或回車分割,所以空格不能被識(shí)別為—個(gè)字符,也就無法讀入空格字符。函數(shù)gets()的作用是從終端輸入—個(gè)字符串\u3000(包括空格)至字符數(shù)組,直到遇到換行符為止,所以可以用來鍵盤讀入空格字符。
9.A
10.D解析:程序不僅是編寫完就結(jié)束了,為了測(cè)試和維護(hù)程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計(jì)的風(fēng)格應(yīng)該強(qiáng)調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。
11.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個(gè)字符串,然后將指針變量p加3,即使其指向字符串的第四個(gè)元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個(gè)十進(jìn)制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復(fù)制到目的地址中,這種復(fù)制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復(fù)制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個(gè)數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個(gè)數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結(jié)果是4。因此本題正確的答案是C。
12.D
13.A
14.D解析:用戶標(biāo)識(shí)符與關(guān)鍵字相同時(shí),程序在編譯過程中將給出出錯(cuò)信息。注意:選項(xiàng)D)應(yīng)該改為用戶標(biāo)識(shí)符與關(guān)鍵字相同,程序在編譯時(shí)將給出出錯(cuò)信息。注意:合法的標(biāo)識(shí)符第一個(gè)字符必須為字母或下劃線。
15.D解析:C語言中有基本的算術(shù)運(yùn)算符(+、-、*、/)還包括自增自減運(yùn)算符(++、-),在C語言解析表達(dá)式時(shí),它總是進(jìn)行貪婪咀嚼,這佯,該表達(dá)式就被解析為i+++++i,顯然該表達(dá)式不合C語言語法。
16.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個(gè)整型變量m、n,對(duì)這兩個(gè)變量賦值,輸入的數(shù)值為十六進(jìn)制整數(shù),并且有m=n。進(jìn)行m-n運(yùn)算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進(jìn)制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進(jìn)制的標(biāo)志,輸出數(shù)據(jù)時(shí),數(shù)據(jù)前面不會(huì)自動(dòng)加上進(jìn)制的標(biāo)志。
17.B
18.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個(gè)字符串,然后將指針變量p加3,即使其指向字符串的第四個(gè)元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個(gè)十進(jìn)制數(shù)的整型數(shù)值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數(shù)和strcpy函數(shù)的作用。
strcpy的調(diào)用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復(fù)制到目的地址中,這種復(fù)制將覆蓋原來的字符串。strcat函數(shù)的功能是將源地址的字符串復(fù)制到目的地址字符串的后面。
strlen的調(diào)用格式是:strlen(字符串地址),其功能是返回字符串中字符的個(gè)數(shù)。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個(gè)數(shù)為4,那么執(zhí)行strlen后,程序最終輸出的結(jié)果是4。因此本題正確的答案是C。
19.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個(gè)局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。
20.C
21.b=i+1b=i+1解析:分析for循環(huán)條件,i=0說明循環(huán)從0開始判斷,i+=2是間隔為2的數(shù),i<=20就是控制數(shù)是20之內(nèi)的a+=i,就是所有偶數(shù)的和,如果從1開始(b=i+1)間隔為2的數(shù)(1,3,5,7,9,11,13,15,17,19)相加就是所有奇數(shù)的和。
22.x+8sin(x)x+8,sin(x)解析:考查考生對(duì)函數(shù)調(diào)用相關(guān)知識(shí)的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
23.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。
24.x+=1;
25.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時(shí),要對(duì)它們進(jìn)行指針運(yùn)算,即*號(hào)運(yùn)算。
26.bcdefghabcdefgha解析:在本題定義的ss()函數(shù)中首先定義了一個(gè)指針p和一個(gè)字符變量t,然后讓p指向參數(shù)指針s的下一個(gè)位置s+1,并讓t保存s位置的字符.然后使用一個(gè)while循環(huán)將p指向的內(nèi)容賦給它前面一個(gè)位置,即將參數(shù)s所指的字符串從第2個(gè)字符開始整體往前移動(dòng)一位。循環(huán)結(jié)束時(shí),p指向原s串的結(jié)束標(biāo)志處,所以讓*(p-1)=t;即是將原s串的第1個(gè)字符復(fù)制到s串的最后一個(gè)位置。整個(gè)函數(shù)實(shí)現(xiàn)的是讓一個(gè)字符串循環(huán)左移一位。故主函數(shù)中最后輸出的字符串是'bcdefgha'。
27.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時(shí),將打開這個(gè)文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個(gè)已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個(gè)新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。
28.32233,2,2,3解析:主函數(shù)中首先定義了整型變量x和y,并分別給它們賦初值為2和3,接著調(diào)用fun()函數(shù),fun()函數(shù)把實(shí)參x和y的值傳給形式參數(shù)x和y,實(shí)參和形參不再有聯(lián)系.在fun()函數(shù)中通過運(yùn)算使x和y的值交換過來,所以fun()函數(shù)中的輸出結(jié)果是“3,2”。fun()函數(shù)調(diào)用返回輸出x和y依舊是原來的x和y,為“2,3”原因是變量作為形參傳值的,對(duì)形參的修改并不影響對(duì)應(yīng)的實(shí)參。所以最后輸出為3,2,2,3。
29.時(shí)間時(shí)間解析:算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。
30.白盒法白盒法
31.(x%i==0)(x%i==0)解析:為判數(shù)x是否是素?cái)?shù),預(yù)置變量y的值為1(x可能是素?cái)?shù)),然后用2至x/2的整數(shù)i測(cè)試對(duì)x的整除性,若x能被其中的某個(gè)整數(shù)整除,則x是合數(shù),置y的值為0(即x不是素?cái)?shù)),結(jié)束循環(huán)測(cè)試;若循環(huán)中i都不能整除x,則x為素?cái)?shù)。一般可用求余運(yùn)算x%i是否等于0來判定i能否整除x,所以程序中的空格處可填(x%i==0)。
32.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個(gè)參數(shù),形參n與C分別是兩個(gè)指向函數(shù)的指針。在f中執(zhí)行nf2(x),實(shí)際上是執(zhí)行了fo(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為2^3-2^2=4。
33.(x>10&&x<100)||x<0
34.
35.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
36.1212解析:本題考查逗號(hào)表達(dá)式的運(yùn)算規(guī)則。逗號(hào)表達(dá)式的基本格式為:“表達(dá)式1,表達(dá)式2,…”,其整個(gè)表達(dá)式的結(jié)果取最后一個(gè)子表達(dá)式的值。本題中首先計(jì)算逗號(hào)表達(dá)式中的第1個(gè)表達(dá)式a=2*3=6,然后計(jì)算第2個(gè)表達(dá)式a*2,這時(shí)整個(gè)表達(dá)式的值為12,但要注意,因?yàn)榈?個(gè)表達(dá)式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個(gè)表達(dá)式a+6=12,所以整個(gè)表達(dá)式最后的值為12。
37.6211342321
38.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個(gè)為正數(shù)”,即x、y和z這3個(gè)數(shù)中必須有兩個(gè)是正數(shù),且這3個(gè)數(shù)中的哪兩個(gè)數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
39.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識(shí)符(*旨針變量名)()。注:“類型標(biāo)識(shí)符”為函數(shù)返回值的類型。
40.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
41.D
42.D解析:函數(shù)func的功能是計(jì)算兩個(gè)形參之和,并將值返回主調(diào)函數(shù)。所以:r=func(func(x,y),z)=func(func(2,5),8)=func(7,8)=15。
43.C解析:do-while語句的一般形式為:do循環(huán)體語句while(表達(dá)式);,其中循環(huán)體語句可以是復(fù)合型語句,但必須用花括號(hào)括起來。while后必須要有分號(hào)作為語句的結(jié)束,在do-while循環(huán)中,不可以省略while。
44.D解析:π必須用一個(gè)符號(hào)名來代表,而且這個(gè)符號(hào)名必須在程序中進(jìn)行指定,否則計(jì)算機(jī)將不能識(shí)別。
45.B解析:滿足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個(gè)為真,即不論c為何值,選項(xiàng)B中的表達(dá)式都為'真'。
46.A
47.A解析:在C語言中,模運(yùn)算(即取余運(yùn)算%)的運(yùn)算對(duì)象必須是整型數(shù)據(jù)(常量、變量或表達(dá)式)。
48.B解析:&&,‖在某種情況下會(huì)實(shí)行“短路規(guī)則”,即當(dāng)邏輯與前面一個(gè)表達(dá)式的值為假的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯表達(dá)式一定為假;當(dāng)邏輯或前面一個(gè)表達(dá)式為真的時(shí)候,后面一個(gè)表達(dá)式就不需要計(jì)算,這個(gè)邏輯或表達(dá)式一定為真。選項(xiàng)A)是將n的值賦值給m和k。選項(xiàng)C)就是進(jìn)行了短路規(guī)則,當(dāng)m=k賦值后,m得到的新值不為0,即為真,邏輯或后面的表達(dá)式就不被計(jì)算,所以n沒有被賦值。D)答案沒有什么意義。
49.C詳細(xì)解答:
在人工管理階段,數(shù)據(jù)無法共享,冗余度大,不獨(dú)立,完全依賴程序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差;在數(shù)據(jù)庫系統(tǒng)階段,共享性好,獨(dú)立性高。
50.C解析:本題考查一個(gè)算法應(yīng)當(dāng)具有5個(gè)特性,即有窮性、確定性、可行性、有零個(gè)或多個(gè)輸入以及有一個(gè)或多個(gè)輸出。算法的確定性是指:算法中每一條指令必須有確切的含義,讀者理解時(shí)不會(huì)產(chǎn)生二義性。并且在任何條件下,算法只有唯一的一條執(zhí)行路徑,即對(duì)于相同的輸入只能得出相同的執(zhí)行結(jié)果。
51.C解析:本題主要考查結(jié)構(gòu)體的內(nèi)存使用:對(duì)結(jié)構(gòu)體而言,結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立。題中intb占2個(gè)字節(jié),chara[15]占15個(gè)字節(jié),doublec占8個(gè)字節(jié),所以共25個(gè)字節(jié)。
52.D
53.C解析:本題考核的知識(shí)點(diǎn)是數(shù)組中元素地址的表示方法。在C語言中:數(shù)組的地址和數(shù)組中的第一個(gè)元素的地址相同。數(shù)組中第一個(gè)元素地址的表示方法為&aa[0],與其等價(jià)的有&aa[0]++,所以選項(xiàng)C不正確的;選項(xiàng)A為數(shù)組的第1個(gè)元素的地址下移一位即是第二個(gè)元素aa[1]的地址;B也為數(shù)組的第二個(gè)元素的地址,選項(xiàng)D中aa表示數(shù)組的地址,加1表示數(shù)組首地址后移一位,即代表數(shù)組元素中的第二個(gè)元素aa[1]的地址。所以,4個(gè)選項(xiàng)中C為所選。
54.C解析:getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入—個(gè)字符。2.putchar()此函數(shù)的作用是向終端輸出—個(gè)字符,也可以輸出控制字符。本題在輸入字符時(shí),ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。
55.A解析:本題考查ifelse語句。第1個(gè)if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第2個(gè)汀語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語句;第3個(gè)汀語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對(duì)的else語句:第4個(gè)if語句,先判斷條件,d=0,條件不成立,則x=-1,結(jié)束循環(huán)。
56.D解析:字符數(shù)組初始化可以有兩種方式:方式一,按單個(gè)字符的方式賦初值。方式二,把一個(gè)字符串作為初值賦給字符數(shù)組。選項(xiàng)A定義的字符數(shù)組長度為8,由于最后還要加一個(gè)“、0”做結(jié)束標(biāo)志,所以賦給他的字符串長度應(yīng)小于等于7;在給字符數(shù)組賦初值的時(shí)候,應(yīng)該用花括號(hào)“{”和“}“將字符串括起來。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時(shí)就給其賦初值,比如:char*p=“student”;二是給指針變量賦值,比如:p=“student”;(p已經(jīng)被定義為字符型指針變量;)。
57.A解析:本題的考點(diǎn)是C語言的函數(shù)參數(shù)的傳遞方式(傳值)。函數(shù)poret的形參是一個(gè)char型指針p,當(dāng)調(diào)用point(p)時(shí),將指針p的值傳遞給形參,函數(shù)point中的p+=3,并不影響主程序main中的p值,因此函數(shù)調(diào)用結(jié)束后,p仍指向b的首地址,輸出*p的值應(yīng)是字符a。
58.C
59.B解析:選項(xiàng)B中由于1和2都是整型,其1/2的運(yùn)算結(jié)果為0,故整個(gè)表達(dá)式的值為0,所以它的結(jié)果和題目中要求的代數(shù)式的計(jì)算結(jié)果不相符,所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
60.C解析:p=&a[3]將指針指向數(shù)組a的第4個(gè)元素,p[5]指向數(shù)組a的第9個(gè)元素,而a[8]=9,所以b=9。
61.A在允許過程的遞歸調(diào)用的程序設(shè)計(jì)語言中,由于C語言中棧的特性為先進(jìn)后出,因此用棧來實(shí)現(xiàn)遞歸調(diào)用中的存儲(chǔ)分配。
62.A
63.D
64.AA選項(xiàng)為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定地址)。C選項(xiàng)錯(cuò)誤,getchar()函數(shù)只能輸
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度百貨商場停車場管理合同樣本3篇
- 二零二五版員工股權(quán)激勵(lì)與管理合同模板3篇
- 二零二五年防盜門研發(fā)、生產(chǎn)、銷售一體化合作協(xié)議3篇
- 2024版家具經(jīng)銷商合作協(xié)議范本
- 二零二五年度音樂器材行業(yè)標(biāo)準(zhǔn)制定與執(zhí)行合同3篇
- 2024版云計(jì)算服務(wù)租賃合同
- 二零二五版?zhèn)€人子女教育還借款合同3篇
- 2024版前期物業(yè)服務(wù)管理協(xié)議
- 二零二五版體育健身器材研發(fā)與銷售合同3篇
- 二零二五年航空航天單位企業(yè)勞務(wù)派遣及技術(shù)研發(fā)合同
- 2024年國家公務(wù)員考試公共基礎(chǔ)知識(shí)全真模擬試題及答案(共四套)
- 工程勘察資質(zhì)分級(jí)標(biāo)準(zhǔn)和工程設(shè)計(jì)資質(zhì)分級(jí)標(biāo)準(zhǔn)
- 2023年四級(jí)計(jì)算機(jī)程序設(shè)計(jì)員核心考點(diǎn)題庫300題(含答案)
- 標(biāo)準(zhǔn)輔助航空攝影技術(shù)規(guī)范
- 2023年中國人保財(cái)險(xiǎn)校園招聘筆試參考題庫附帶答案詳解
- hdx7底層黑磚刷寫和字庫救磚教程bysmartyou
- 年會(huì)頒獎(jiǎng)晚會(huì)頒獎(jiǎng)盛典簡約PPT模板
- 年產(chǎn)10000噸柑橘飲料的工廠設(shè)計(jì)
- 雷電知識(shí)、雷電災(zāi)害防御知識(shí)匯總-上(單選題庫)
- 導(dǎo)學(xué)案 高中英語人教版必修三Unit4 Astronomy the science of the stars
- 培訓(xùn)互動(dòng)技巧
評(píng)論
0/150
提交評(píng)論