版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年四川省內江市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運行后的輸出結果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
2.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
3.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()
A.連接碼B.關系碼C.外碼D.候選碼
4.軟件設計中劃分模塊的一個準則是()。A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦合
5.
讀取二進制文件的函數調用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數據的字節(jié)數
C.一個內存塊的首地址,代表讀人數據存放的地址
D.一個內存塊的字節(jié)數
6.設有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計算出一個char型數據所占字節(jié)數的表達式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
7.下列函數的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
8.
9.C語言提供的合法關鍵字是()
A.switchB.cherC.caseD.default
10.對關系S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()
A.并運算B.交運算C.差運算D.積運算
11.設n、m為一棵二叉樹上的兩個結點,在中序遍歷時,n在m之前的條件是_____________。
A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫
12.在非線性結構中,每個結點()。
A.無直接前趨
B.只有一個直接前趨和個數不受限制的直接后繼
C.只有一個直接前驅和后繼
D.有個數不受限制的直接前驅和后繼
13.
14.表達式a*(-b+c)的逆波蘭式是()
A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*
15.
16.以下是根據文件大小分配存儲空間的一個算法偽代碼,請問其空間復雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))
17.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構
18.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.輸出值不定
19.設有定義:#include<stdio.h>#include<stdlib.h>typedefstruct{intx,y;}T;typedefstruct{intx,y;}*USER;USERfun(){USERp;p=(USER)malloc(sizeof(T));p->x=1;p->y=2;returnp;}函數fun返回值的類型是()。
A.T類型的結構體B.指向結構體類型的指針C.int類型的元素D.int類型的指針
20.下列判斷正確的是()。
A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
二、2.填空題(20題)21.實現程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
22.執(zhí)行下面程序段時輸出suet,請?zhí)羁铡?/p>
main()
{staticchara[]="student";
char*p;
for(p=a;p<【】;p+=2)
putchar(*p);
}
23.【】是數據庫設計的核心。
24.以下程序的功能是:通過函數func輸入字符并統計輸入字符的個數。輸入時用字符作為輸入結束標志。請?zhí)羁铡?include<stdio.h>long();/*函數說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
25.有如下圖所示的雙鏈表結構,請根據圖示完成結構體的定義:
structaa
{intdata;
【】}node;
26.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
27.以下程序的功能是:刪去一維數組中所有相同的數,使相同的數只剩一個。數組中的數已按由小到大的順序排列,函數fun返回刪除后數組中數據的個數。
例如,若一維數組中的數據是:
2223445666677899101010
刪除后,數組中的內容應該是:2345678910。請?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");
}
28.以下程序的功能是調用函數fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f=【】;
returnm;
}
main()
{printf("m=%d\n",【】);}
29.結構化分析方法是面向______進行分析的方法。
30.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
31.設inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。
32.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結果是【】。
33.實現算法所需的存儲單元多少和算法的工作量大小分別稱為為算法的【】。
34.若a=l,b=2,則表達式!(x=a)||y=b)&&0的值是______。
35.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。
36.函數pi的功能是根據以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
現在請你在下面的函數中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
37.以下程序中,fun函數的功能是求3行4列二維數組每行元素中的最大值,請?zhí)羁眨?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{X=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:
}
}
38.常見的拓撲結構有【】。
39.下面函數用來求出兩個整數之和,并通過形參傳回兩數相加之和值。請?zhí)羁铡?/p>
intadd(intx,inty,【】,)
{【】=x+y;}
40.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數中的最大值,輸出到屏幕上。請?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);}
三、1.選擇題(20題)41.設函數fun的定義形式為voidfun(charch,floatx){…}則以下對函數fun的調用語句中,正確的是
A.fun("abc",3.0);
B.t=fun('D',16.5);
C.fun('65',2.8);
D.fun(32,32);
42.若變景均已正確定義井賦值,以下合法的C語言賦值語句是()
A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;
43.若有下面的說明和定義,則sizeof(structaA)的值是()struetaa{intr1;doubler2floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
44.在軟件開發(fā)中,下面任務不屬于設計階段的是______。
A.數據結構設計B.給出系統模塊結構C.定義模塊算法D.定義需求并建立系統模型
45.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在執(zhí)行了c=&b;b=&a;語句后,表達式**c的值是()。
A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址
46.以下關于字符串的敘述中正確的是()。
A.C語言中有字符類型的常量和變量
B.兩個字符串中的字符個數相同時才能進行字符串大小的比較
C.可以用關系運算符對字符串的大小進行比較
D.空串一定比空格打頭的字符串小
47.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
48.以下程序段的輸出結果是______。intsbr[]={10,8,6,4,2},*p=str+1;printf("%d\n",*(p+2));
A.6B.4C.10D.不確定的值
49.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數據,正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
50.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結果是
A.8,6B.8,3C.6,4D.7,4
51.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
52.算法的時間復雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數D.算法程序中的指令條數
53.以下不屬于對象的基本特點的是()
A.分類性B.多態(tài)性C.繼承性D.封裝性
54.結構化程序設計方法的3種基本控制結構中不包括
A.循環(huán)結構B.遞歸結構C.順序結構D.選擇結構
55.微機顯示器一般有兩組引線,它們是()
A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線
56.下列判斷正確的是()。
A.chara="ABCD";等價于char*a;*a="ABCD";
B.charstr[10]={"ABCD"};等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD";等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD";等價于charc[5]=d[5]="ABCD";
57.下面程序的文件名為t.exe,在DOS下輸入的命令行參數為:ttomeetme<回車>
則程序輸出的結果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正確
58.下述語句中,在字符串s1和s2相等時顯示"theyareEqual"的是()。
A.if(*s1=*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual");
59.以下程序輸出的結果是#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}
A.11,10B.9,10C.010,9D.10,9
60.下面程序的運行結果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf("x=%d,y=%d”,x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
四、選擇題(20題)61.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。A.定義語句中的*號是一個間址運算符
B.定義語句中的*號是一個說明符
C.定義語句中的p只能存放double類型變量的地址
D.定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P
62.設有表示學生選課的三張表,學生s(學號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學號,課號,成績),則表sc的關鍵字(鍵或碼)為()。
A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績
63.
64.設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
65.設x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是()。
A.
B.
C.
D.
66.
下列程序的輸出結果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}
A.49B.36C.25D.64
67.
68.有以下程序:
程序運行后的輸出結果是()。
69.軟件(程序)調試的任務是()。
A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現程序中的錯誤C.發(fā)現并改正程序中的所有錯誤D.確定程序中錯誤的性質
70.
71.下列有關數據庫的描述,正確的是______。
A.數據庫是一個DBF文件B.數據庫是一個關系C.數據庫是一個結構化的數據集合D.數據庫是一組文件
72.
73.
74.若有下列定義(設int類型變量占2個字節(jié)):inti=8,j=9;則下列語句:printf("i=%%d,j=%%d\n",i,j);輸出的結果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
75.
76.若有定義:“int*P,x=0,*p,p=&x;”,則語句“printf("%d\n",*p);”的輸出結果是()。
A.隨機值B.0C.x的地址D.P的地址
77.已定義以下函數:
fun函數的返回值是()。
A.一個整數B.不確定的值C.形參P中存放的值D.形參P的地址值
78.若有如下定義,則__________是對數組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數fun的功能是:將s所指字符串的正序和反序進行連接,形成的新串放在t所指的數組中。例如,當S所指字符串為“ABCD”時,t所指字符串中的內容應為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!試題程序:
六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數fun(),其功能是:刪除字符串中所有的*號。編寫函數時,不得使用C語言提供的字符串函數。例如,字符串中的內容為“****A*BC*DEF*G****”,刪除后,字符串中的內容應當是“ABCDEFG”。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入編寫的若干語句。試題程序:
參考答案
1.B解析:f函數用了顯式傳地址的方式,因此主函數中的s值發(fā)生了變化。
2.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。
3.DD)【解析】在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。
4.B一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。
5.Cfread函數中的參數buffer是內存塊的首地址,輸入的數據存入此內存塊中。
6.A根據題目中的定義可知,“sizeof(p)”計算的是數組p中所有元素所占用的字節(jié)數,而不是char型數據所占的字節(jié)數。故本題答案為A選項。
7.A本題考查函數值的類型。在函數調用時,盡管Y的類型是float.x的類型是double,但是因為函數定義時沒有指定類型說明,系統默認函數值的類型為int型,所以計算后Y的類型是int型。
8.B
9.C
10.AA)【解析】關系的并運算是指由結構相同的兩個關系合并,形成一個新的關系,新關系中包含兩個關系中的所有元組。
11.C
12.D
13.D
14.D
15.B
16.C
17.C
18.A解析:對未給出初始值的整數數組元素,被默認初始化為零。
19.B由題意可知:使用typedef將類型“struct{intx,y;}*”重命名為“USER”,所以函數fun的返回類型為“struct{intx,y;}*”,即指向結構體類型的指針。故本題答案為B選項。
20.Da=“ABCD”書寫錯誤,因為“=”左邊不能出現常量;數組名S是代表S數組首地址常量,而不是變量;字符串只有在定義時維數可以省略。
21.3!feof(f1)3\r\n!feof(f1)解析:要實現文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數,加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。
22.a+strlen(a)或strlen(a)+aa+strlen(a)或strlen(a)+a解析:要輸出suet就要將指針從字符串開始移動到字符串結尾,表達式p=a使p指向字符串的首地址;表達式p+=2使每次循環(huán)p值加2,是向前移動指針;空白處應判斷是否到達字符串結尾,因此應填字符串的首地址加字符串長度,strlen(a)的返回值為字符串a所含的字符個數。
23.數據模型數據模型
24.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數在主函數之后定義,就要對其進行說明,說明的形式為:“函數類型名函數名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個數,所以每輸入一個字符,變量m的值就加1。所以此處填寫m++。
25.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。
26.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結束。故該空格處應該填132。
27.!=returnj!=returnj解析:函數fun中,變量j用于控制刪除后剩下的數中的下標,i用于搜索原數組中的元素。j始終是新數組已有元素中最后一個元素的下一個元素的下標,所以訂語句中的條件是a[j-1]!=a[i],其中a[j-1]就是新數組中的最后一個元素,若條件成立則表示出現了不同的值,a[i]要添加到新數組中。該算法只能用于數組已排序的題目中。
28.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:調用fun()函數計算m的值,在主函數中的空格處應該填調用fun()函數的語句。fun()函數有一個形參n,為每次參加計算的值的個數,故在主函數中的空格處應該填fun(10),回到fun()函數,函數用到了一個for循環(huán),共循環(huán)n次,當循環(huán)第i次的時候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函數的空格處應該填使f改變符號的語句,故應填-f或f*-1或-1*f或f*(-1)或(-1)*f。
29.數據流數據流解析:結構化分析方法的實質是著眼于數據流,自頂向下,逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。
30.概念設計階段(數據庫概念設計階段)概念設計階段(數據庫概念設計階段)
31.77解析:此表達式為三目運算符,++a的值為6,b--的值為6,則整個表達式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
32.44解析:在主函數中調用函數f,函數f有三個參數,形參f1與f2分別是兩個指向函數的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。
33.空間復雜度和時間復雜度空間復雜度和時間復雜度解析:算法的復雜性是指對—個在有限步驟內終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復雜性,算法的計算量是算法的時間復雜性。
34.00解析:根據運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結果都為0。
35.結構結構解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結構進行測試。
36.0/(i*i)或(double)1/(i*i)0/(i*i)或(double)1/(i*i)解析:表達式1+1/(2*2)+1/(3*3)+...+1(n*n)可寫為1/(1*1)+1/(2*2)+1/(3*3)+...+1(n*n)
n
即:∑1÷(i×i)
i=1
對應的C語言的表達式s=s+1.0/(i*i)。注:必須要寫成1.0的形式,否則1/(i,i)返回值為其值截尾取整,即恒為0。
37.br[i]br[i]解析:函數fun的功能是求出二維數組每行元素中的最大值。對于3行4列的二維數組將有3個最大值存放到數組br[]中。x存放的是每行的最大值,當求出每行的最大值x后,應該將x賦值給br[]。因此此處填空應該是br[i]。
38.星型、總線型和環(huán)型星型、總線型和環(huán)型
39.int*p*p或p[0]int*p\r\n*p或p[0]
40.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比max大的數,將該數存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
41.D解析:題目中定義的函數fun()有兩個參數,一個是字符型變量ch,另一個是浮點型變景x,函數類型是void即無返回值。選項A調用fun的第1個參數是字符串常量與字符變量不匹配,所以不正確。選項B是有返回值函數的調用形式,不正確。選項C的第1個參數是錯誤的字符常量,字符常量是用單引號括起來的—個字符(是轉義字符可能有多個字符),故也不正確。選項D使用兩個整型常量調用fun這在C語言中是允許的。因為整型到字符型可以自動轉換,整型到浮點型也可以自動轉換。故應該選擇D。
42.A解析:“%”運算符的作用是求模,意思是做除法求余,這就要求兩個運算分量均為整數。選項B中,2.5不是整數,故非法;選項C中,表達式x+n計算后得到的是一臨時值,臨時值不能做左值,故非法;選項D中,由于“=”運算符的結合性是“從右到左”,故先計算5=4+1,5是常量不能做左值,故選項D也非法。選項A,y==5是一個邏輯表達式,其值為真或假,可以用做右值,所以是合法的。故本題應該選擇A。
43.D
44.D【解析】數據結構設計、給出系統模塊結構以及定義模塊算法都屬于設計階段,而定義需求并建立系統模型屬于分析階段。
45.C解析:本題考查指向指針的指針。*c表示c間接指向的對象的地址,而**c是c間接指向的對象的值。在c*&b中,已經把b的地址存放在c里了,*c就指向了b的地址,而b里存放的就是a的地址,那么**c應該是變量a的值。也可以用排除法排除選項A),B)。由b=&a可知,這兩個選項是同一個意思,變量b中的值就是變量a的地址。所以可以排除。
46.D解析:本題考查的重點是C語言中對字符串的理解。選項B是錯誤的,兩個字符串不一定非要字符一樣多才可以比較大??;選項C是錯誤的,不能用關系運算符來對字符串進行大小比較。因為空串只有一個null字符(其值為零),從而,它一定比空格打頭的字符串小,所以選項D是正確的。
47.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統測試。
(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現與接口有關的問題。集成測試可以發(fā)現概要設計時犯的錯誤。
(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數據進行測試,測試數據通過用戶接口輸入。
(4)系統測試是將已經通過確認測試的軟件,作為整個計算機系統的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統測試的目的是通過與系統的需求定義做比較,發(fā)現軟件與系統的定義不符合的地方。系統測試可以發(fā)現問題定義時犯下的錯誤。
48.B解析:指針變量操作。
49.B解析:scanf函數的一般格式是:
scanf(格式控制,地址表列)
該格式中,地址表列中應是變量地址,而不是變量名。注意:調用putchar和getchar函輸出和輸入字符。
50.C解析:本題考查的知識點是運算符的優(yōu)先級.在復合賦值語句中,應該由右向左依次賦值,在表達式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。
51.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。
52.C解析:算法的時間復雜度實際上就是執(zhí)行算法程序所需要的計算工作量。為了客觀地反映算法性能,在度量算法的時間復雜度時,應該與編寫算法程序所使用的程序設計語言、執(zhí)行算法程序時所使用的計算的工具以及程序員的水平無關。選項A錯誤,因為同一算法程序在運行速度不同的計算機上運行時,其計算時間是不同的。選項B錯誤,因為算法所編寫的程序長度往往與程序設計語言以及程序員的水平有關,同一個算法,用不同的程序設計語言或者不同的程序員所編寫出的程序其長度可能會大不相同。選項D錯誤,因為根據一個算法所編制出的程序之中,其指令條數往往與程序設計語言以及程序員的水平有關,不能用算法程序中的指令條數來度量算法的時間復雜度。所以,本題正確答案為C。
53.C解析:對象的基本特點包括;標識惟一性、分類性、多態(tài)性、封裝性和獨立性等。繼承性不屬于對象的基本特點。
54.B解析:本題考查了程序的基本結構。程序由一些基本結構組成。任何一個大型的程序都由3種基本結構組成,由這些基本結構順序的構成了一個結構化的程序。這3種基本結構為:順序結構、選擇結構和循環(huán)結構。
55.A
56.D解析:a='ABCD'書寫錯誤,因為“;”左邊不能出現常量;數組名s是代表s數組首地址的地址常量,而不是變量;字符串只有在定義時維數可以省略。
57.B解析:argc中存入的是命令行中字符串的個數。argv是一個指向字符型的指針數組的指針。
58.B
59.B解析:本題考核的知識點是自增運算符和自減運算符的使用.程序中i的值用八進制表示(十進制為8),++i是在變量使用前自身先加1,而j--是在變量使用后自身減1。所以,4個選項中B符合題意。
60.C解析:本題考查的是逗號表達式。逗號表達式的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就是最后一個表達式N的值。表達式(x=3*y,x+6)中,x=15。表達式y=x-1=14。
61.A在變量定義doublea,*p:&a;中,*號是一個指針運算符,而非間址運算符,因此A)錯誤。
62.C學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關鍵字就應該是與前兩個表能夠直接聯系且能唯一定義的學號和課號,所以選擇C項。
63.D
64.B解析:條件表達式的形式為:“表達式1?表達式2:表達式3”。其含義為:當“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值;當“表達式1”的值為零時,求出“表達式3”的值,此時“表達式3”的值就是整個條件表達式的值。對于本題來說,當表達式EXP為非0值時條件成立,即執(zhí)行語句i++;當EXP等于0時,執(zhí)行語句j--;這等同于條件表達式“(EXP!=0)?i++:i++;”。
65.D該題考查邏輯與”&&”和邏輯或”||”以及邏輯非”!¨符號的用法。選項A)即3&&4為真;選項B)即3<=4為真;選項C)是一個邏輯或與邏輯與的混合運算,只要執(zhí)行了邏輯或左半部分,程序將直接停止執(zhí)行邏輯或右半部
分程序,因為x的值為真;此時選項c)變?yōu)閘&&一1為真。選項D)不用計算,括號內邏輯或右邊的值為l,因而括號內的值為1,再進行邏輯非運算得0。
66.C
\n本題考查for循環(huán)及if語句。當執(zhí)行到第一個滿足(i*i>一20)&&(i*i<=100)這個條件的i出現時,break跳出循環(huán),執(zhí)行下列的printf語句。
\n
67.A
68.A外循環(huán)第一次i的值為1,內循環(huán)第一次j的初值為l,打印1*1=1;內循環(huán)第二次j的值為2,打印1$2=2;內循環(huán)第三次J的值為3,打印1}3=3,打印回車換行,退出內循環(huán)。外循環(huán)第二次i的值為2,內循環(huán)第一次j的初值為2,打印2*2=4;內循環(huán)第二次j的值為3,打印2。3=6,打印回車換行,退出內循環(huán)。外循環(huán)第三次i的值為3,內循環(huán)第一次j的初值為3,打印3*3=9,打印回車換行,退出內循環(huán)。
69.A解析:軟件調試的任務是診斷和改正程序中的錯誤,本題正確答案為A)。其他二項描述不正確,選項B)描述不全面,選項C)描述太絕對,選項D)描述不符合定義。
70.A
71.C解析:數據庫(Database,簡稱DB)是數據的集合,它具有統一的結構形式并存放于統一的存儲介質內,是多種應用數據的集成,并可被各個應用程序所共享。數據庫中的數據具有“集成”、“共事”之特點。
72.A
73.B
74.B本題考查函數的輸出格式。在printf函數,格式說明符中有兩個“%”說明;將第1個%后面的字符原樣輸出,并不輸出其對應r的變量值。
75.B
76.A*P的意思是取其指向地址的內容,P是指向x地址的指針,因此輸出*p也就是輸出x的內容,即0,故選擇B選項。
77.A返回值為指針變量指向的數據,該數據已被定義為整型。因此A選項正確。
78.D
79.C
80.A
81.
82.
【解析】此題是刪除字符串中的星號。思路是通過for循環(huán)來完成對字符串的遍歷,通過if判斷,找到不是“*”的字符,將其賦值到數組a中星號前的位置,“if(a[i]!=ˊ*ˊ)”“a[j++]=a[i]”,最后返回主函數將刪除*后的字符串輸出即可。
2021年四川省內江市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序運行后的輸出結果是______。
A.SunDan20044580
B.Penghua20045537
C.LiSiGUO20042580
D.SunDan20041703
2.與“y=(x>0?1:x<0?-1:0)”;的功能相同的if語句是()。A.A.if(x>0)y=1;elseif(x<0)y=1;else=""y="0;
B."x="">0)y=1;elseif(x<0)y=-l;else=""y="0;"
C.y="-l"x="">O)y=1;elseif(x=-0)y=0;elsey=-l;
D.y=0;if(x>=0)if(x>=0)y=1;elsey=-l;
3.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()
A.連接碼B.關系碼C.外碼D.候選碼
4.軟件設計中劃分模塊的一個準則是()。A.低內聚低耦合B.高內聚低耦合C.低內聚高耦合D.高內聚高耦合
5.
讀取二進制文件的函數調用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數據的字節(jié)數
C.一個內存塊的首地址,代表讀人數據存放的地址
D.一個內存塊的字節(jié)數
6.設有定義“Charp[]={‘1’,‘2’,‘3’},*q=p;”,以下不能計算出一個char型數據所占字節(jié)數的表達式是()。A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
7.下列函數的類型是()。fun(doublex){floaty;y=3*x-4;returny;}
A.intB.不確定C.voidD.float
8.
9.C語言提供的合法關鍵字是()
A.switchB.cherC.caseD.default
10.對關系S和R進行集合運算,結果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運算稱為()
A.并運算B.交運算C.差運算D.積運算
11.設n、m為一棵二叉樹上的兩個結點,在中序遍歷時,n在m之前的條件是_____________。
A.n在m右方B.n是m的祖先C.n在m左方D.n是m子孫
12.在非線性結構中,每個結點()。
A.無直接前趨
B.只有一個直接前趨和個數不受限制的直接后繼
C.只有一個直接前驅和后繼
D.有個數不受限制的直接前驅和后繼
13.
14.表達式a*(-b+c)的逆波蘭式是()
A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*
15.
16.以下是根據文件大小分配存儲空間的一個算法偽代碼,請問其空間復雜度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))
17.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構
18.以下程序的輸出結果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1];a[3][0]);}
A.650B.1470C.5430D.輸出值不定
19.設有定義:#include<stdio.h>#include<stdlib.h>typedefstruct{intx,y;}T;typedefstruct{intx,y;}*USER;USERfun(){USERp;p=(USER)malloc(sizeof(T));p->x=1;p->y=2;returnp;}函數fun返回值的類型是()。
A.T類型的結構體B.指向結構體類型的指針C.int類型的元素D.int類型的指針
20.下列判斷正確的是()。
A.chara="ABCD":等價于char*a;*a="ABCD":
B.charstr[10]={"ABCD"}:等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD":等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD":等價于charc[5]-d[5]="ABCD";
二、2.填空題(20題)21.實現程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
22.執(zhí)行下面程序段時輸出suet,請?zhí)羁铡?/p>
main()
{staticchara[]="student";
char*p;
for(p=a;p<【】;p+=2)
putchar(*p);
}
23.【】是數據庫設計的核心。
24.以下程序的功能是:通過函數func輸入字符并統計輸入字符的個數。輸入時用字符作為輸入結束標志。請?zhí)羁铡?include<stdio.h>long();/*函數說明語句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}
25.有如下圖所示的雙鏈表結構,請根據圖示完成結構體的定義:
structaa
{intdata;
【】}node;
26.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
27.以下程序的功能是:刪去一維數組中所有相同的數,使相同的數只剩一個。數組中的數已按由小到大的順序排列,函數fun返回刪除后數組中數據的個數。
例如,若一維數組中的數據是:
2223445666677899101010
刪除后,數組中的內容應該是:2345678910。請?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");
}
28.以下程序的功能是調用函數fun計算:m=1-2+3-4+…+9-10,并輸出結果。請?zhí)羁铡?/p>
intfun(intn)
{intm=0,f=1,i;
for(i=1;i<=n;i++)
m+=i*f;
f=【】;
returnm;
}
main()
{printf("m=%d\n",【】);}
29.結構化分析方法是面向______進行分析的方法。
30.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
31.設inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。
32.有以下程序
intfa(intx){returnx*x;}
intfb(intx){retumx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;i=f(fa,fb,2);printf("%d\n",i);}
程序運行后,輸出結果是【】。
33.實現算法所需的存儲單元多少和算法的工作量大小分別稱為為算法的【】。
34.若a=l,b=2,則表達式!(x=a)||y=b)&&0的值是______。
35.軟件測試中路徑覆蓋測試是整個測試的基礎,它是對軟件【】進行測試。
36.函數pi的功能是根據以下近似公式求π值:
(π*π)/6=1+1/(2*2)+1/(3*3)+...+1(n*n)
現在請你在下面的函數中填空,完成求π的功能。
#include"math.h"
{doubles=0.0;longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*S));
}
37.以下程序中,fun函數的功能是求3行4列二維數組每行元素中的最大值,請?zhí)羁眨?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{X=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:
}
}
38.常見的拓撲結構有【】。
39.下面函數用來求出兩個整數之和,并通過形參傳回兩數相加之和值。請?zhí)羁铡?/p>
intadd(intx,inty,【】,)
{【】=x+y;}
40.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數中的最大值,輸出到屏幕上。請?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);}
三、1.選擇題(20題)41.設函數fun的定義形式為voidfun(charch,floatx){…}則以下對函數fun的調用語句中,正確的是
A.fun("abc",3.0);
B.t=fun('D',16.5);
C.fun('65',2.8);
D.fun(32,32);
42.若變景均已正確定義井賦值,以下合法的C語言賦值語句是()
A.x=y==5;B.x=n%2.5;C.x+n=i;D.x=5=4+1;
43.若有下面的說明和定義,則sizeof(structaA)的值是()struetaa{intr1;doubler2floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
44.在軟件開發(fā)中,下面任務不屬于設計階段的是______。
A.數據結構設計B.給出系統模塊結構C.定義模塊算法D.定義需求并建立系統模型
45.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;┆}程序在執(zhí)行了c=&b;b=&a;語句后,表達式**c的值是()。
A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址
46.以下關于字符串的敘述中正確的是()。
A.C語言中有字符類型的常量和變量
B.兩個字符串中的字符個數相同時才能進行字符串大小的比較
C.可以用關系運算符對字符串的大小進行比較
D.空串一定比空格打頭的字符串小
47.檢查軟件產品是否符合需求定義的過程稱為()。
A.確認測試B.集成測試C.驗證測試D.驗收測試
48.以下程序段的輸出結果是______。intsbr[]={10,8,6,4,2},*p=str+1;printf("%d\n",*(p+2));
A.6B.4C.10D.不確定的值
49.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數據,正確的輸入語句是
A.INPUTx、v、z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
50.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結果是
A.8,6B.8,3C.6,4D.7,4
51.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
52.算法的時間復雜度是指______。
A.執(zhí)行算法程序所需要的時間B.算法程序的長度C.算法執(zhí)行過程中所需要的基本運算次數D.算法程序中的指令條數
53.以下不屬于對象的基本特點的是()
A.分類性B.多態(tài)性C.繼承性D.封裝性
54.結構化程序設計方法的3種基本控制結構中不包括
A.循環(huán)結構B.遞歸結構C.順序結構D.選擇結構
55.微機顯示器一般有兩組引線,它們是()
A.電源線與信號線B.電源線與控制線C.電源線與地線D.控制線與地線
56.下列判斷正確的是()。
A.chara="ABCD";等價于char*a;*a="ABCD";
B.charstr[10]={"ABCD"};等價于charstr[10];str[]={"ABCD"};
C.char*s="ABCD";等價于chars;*s="ABCD";
D.charc[5]="ABCD",d[5]="ABCD";等價于charc[5]=d[5]="ABCD";
57.下面程序的文件名為t.exe,在DOS下輸入的命令行參數為:ttomeetme<回車>
則程序輸出的結果是
#include"stdio.h"
main(argc,argv)
intargc;char*argv[];
{inti;
printf("%d\n",argc);}
A.3B.4C.2D.以上答案都不正確
58.下述語句中,在字符串s1和s2相等時顯示"theyareEqual"的是()。
A.if(*s1=*s2)puts("theyareEqual");
B.if(!strcmp(s1,s2))puts("theyareEqual");
C.if(s1==s2)puts("theyareEqual");
D.if(strcmp(s1,s2))puts("theyareEqual");
59.以下程序輸出的結果是#include<stdio.h>main(){inti=010,j=10;printf("%d,%d\n",++i,j--);}
A.11,10B.9,10C.010,9D.10,9
60.下面程序的運行結果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf("x=%d,y=%d”,x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
四、選擇題(20題)61.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。A.定義語句中的*號是一個間址運算符
B.定義語句中的*號是一個說明符
C.定義語句中的p只能存放double類型變量的地址
D.定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P
62.設有表示學生選課的三張表,學生s(學號,姓名,性別,年齡,身份證號),課程c(課號,課名),選課SC(學號,課號,成績),則表sc的關鍵字(鍵或碼)為()。
A.課號,成績B.學號,成績C.學號,課號D.學號,姓名,成績
63.
64.設有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
65.設x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是()。
A.
B.
C.
D.
66.
下列程序的輸出結果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}
A.49B.36C.25D.64
67.
68.有以下程序:
程序運行后的輸出結果是()。
69.軟件(程序)調試的任務是()。
A.診斷和改正程序中的錯誤B.盡可能多地發(fā)現程序中的錯誤C.發(fā)現并改正程序中的所有錯誤D.確定程序中錯誤的性質
70.
71.下列有關數據庫的描述,正確的是______。
A.數據庫是一個DBF文件B.數據庫是一個關系C.數據庫是一個結構化的數據集合D.數據庫是一組文件
72.
73.
74.若有下列定義(設int類型變量占2個字節(jié)):inti=8,j=9;則下列語句:printf("i=%%d,j=%%d\n",i,j);輸出的結果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9
75.
76.若有定義:“int*P,x=0,*p,p=&x;”,則語句“printf("%d\n",*p);”的輸出結果是()。
A.隨機值B.0C.x的地址D.P的地址
77.已定義以下函數:
fun函數的返回值是()。
A.一個整數B.不確定的值C.形參P中存放的值D.形參P的地址值
78.若有如下定義,則__________是對數組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
79.
80.
五、程序改錯題(1題)81.下列給定程序中,函數fun的功能是:將s所指字符串的正序和反序進行連接,形成的新串放在t所指的數組中。例如,當S所指字符串為“ABCD”時,t所指字符串中的內容應為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!試題程序:
六、程序設計題(1題)82.規(guī)定輸入的字符串中只包含字母和*號。編寫函數fun(),其功能是:刪除字符串中所有的*號。編寫函數時,不得使用C語言提供的字符串函數。例如,字符串中的內容為“****A*BC*DEF*G****”,刪除后,字符串中的內容應當是“ABCDEFG”。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數fun()的花括號中填入編寫的若干語句。試題程序:
參考答案
1.B解析:f函數用了顯式傳地址的方式,因此主函數中的s值發(fā)生了變化。
2.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。
3.DD)【解析】在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。
4.B一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。
5.Cfread函數中的參數buffer是內存塊的首地址,輸入的數據存入此內存塊中。
6.A根據題目中的定義可知,“sizeof(p)”計算的是數組p中所有元素所占用的字節(jié)數,而不是char型數據所占的字節(jié)數。故本題答案為A選項。
7.A本題考查函數值的類型。在函數調用時,盡管Y的類型是float.x的類型是double,但是因為函數定義時沒有指定類型說明,系統默認函數值的類型為int型,所以計算后Y的類型是int型。
8.B
9.C
10.AA)【解析】關系的并運算是指由結構相同的兩個關系合并,形成一個新的關系,新關系中包含兩個關系中的所有元組。
11.C
12.D
13.D
14.D
15.B
16.C
17.C
18.A解析:對未給出初始值的整數數組元素,被默認初始化為零。
19.B由題意可知:使用typedef將類型“struct{intx,y;}*”重命名為“USER”,所以函數fun的返回類型為“struct{intx,y;}*”,即指向結構體類型的指針。故本題答案為B選項。
20.Da=“ABCD”書寫錯誤,因為“=”左邊不能出現常量;數組名S是代表S數組首地址常量,而不是變量;字符串只有在定義時維數可以省略。
21.3!feof(f1)3\r\n!feof(f1)解析:要實現文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數,加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。
22.a+strlen(a)或strlen(a)+aa+strlen(a)或strlen(a)+a解析:要輸出suet就要將指針從字符串開始移動到字符串結尾,表達式p=a使p指向字符串的首地址;表達式p+=2使每次循環(huán)p值加2,是向前移動指針;空白處應判斷是否到達字符串結尾,因此應填字符串的首地址加字符串長度,strlen(a)的返回值為字符串a所含的字符個數。
23.數據模型數據模型
24.tunc()m++tunc()m++解析:第一空白處,在C語言中如果子函數在主函數之后定義,就要對其進行說明,說明的形式為:“函數類型名函數名”。所以此處填寫func()。第二空白處,整型變量m表示輸入字符的個數,所以每輸入一個字符,變量m的值就加1。所以此處填寫m++。
25.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。
26.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度催款函編制規(guī)范合同參考范本3篇
- 2025年度房產證電子證照轉換及打印服務合同3篇
- 2025年度豪華旅游巴士租賃及維護管理合同4篇
- 二零二五年康師傅飲料產品倉儲調撥與庫存共享合同3篇
- 2025版事業(yè)單位聘用合同糾紛調解處理辦法及協議3篇
- 二零二五年度生物制藥存貨質押擔保與臨床試驗合同4篇
- 2025版企事業(yè)單位食堂承包服務合同范本3篇
- 2025年度柴油運輸合同環(huán)保責任履行監(jiān)督協議4篇
- 2025年度工業(yè)園區(qū)場地安全租賃合同范本8篇
- 2024鐵路客戶服務中心旅客票務代理服務合同3篇
- 《機器人驅動與運動控制》全套教學課件
- 電子商務平臺技術服務合同范本1
- 期末 (試題) -2024-2025學年川教版(三起)英語四年級上冊
- 2024年國家公務員考試公共基礎知識復習題庫及答案(共三套)
- 《社會工作實務》全冊配套完整課件3
- 單位違反會風會書檢討書
- 2024年4月自考00832英語詞匯學試題
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化運維服務信息化運維方案
- 汽車修理廠員工守則
- 公安交通管理行政處罰決定書式樣
評論
0/150
提交評論