




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022年安徽省淮南市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的運行結果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
2.以下不能對二維數組a進行正確初始化的語句是()。A.inta[2][3]={0};
B.inta[2][3]={{1,2},{3,4},{5,6}};
C.inta[][3]={{1,2},{0}};
D.inta[][3]={1,2,3,4,5,6};
3.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的運行結果是()。
A.20B.25C.45D.36
4.已知字母a的ASCII碼為十進制數97,下面程序的輸出結果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.輸出無定值B.d,eC.e,fD.g,d
5.
6.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
7.有下列程序:程序執行后的輸出結果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
8.關于地址和指針,以下敘述正確的是()。
A.可以通過強制類型轉換讓char型指針指向double型變量
B.函數指針P指向一個同類型的函數f時,必須寫成“p=&f;”
C.指針P指向一個數組f時,必須寫成“P=&f;”
D.—個指針變量P可以指向自身
9.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序運行后的輸出結果是()。
A.IB.JC.KD.H
10.
11.設有兩個串p和q,求q在p中首次出現的位置的運算稱為()。
A.連接B.模式匹配C.求子串D.求串長
12.下列語句中,顯示沒有下畫線的超鏈接的語句是()。
A.a{text—decoration:none}
B.a{text—decoration:nounderline}
C.a{underline:none}
D.a{decoration:nounderline}
13.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調的是()。
A.存儲媒體B.表現媒體C.傳輸媒體D.感覺媒體
14.C語言可執行程序的開始執行點是()。
A.包含文件中的第一個函數B.程序中第一個函數C.程序中的main()函數D.程序中第一條語句
15.有以下程序:
程序執行后的輸出結果是()。
A.1B.2C.3D.4
16.數據庫設計包括兩個方面的設計內容,它們是()。
A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計
17.
18.以下程序運行后的輸出結果是()。
A.1,2,3,1,5,9,
B.1,3,5,1,3,5,
C.1,3,5,0,d,8,
D.1,3,5,-1,3,7,
19.下列說法不正確的是()。
A.調用函數時,實參可以是表達式
B.調用函數時,實參與形參可以共用內存單元
C.調用函數時,將實參的值復制給形參,使實參變量和形參變量在數值上相等
D.調用函數時,實參與形參的類型必須一致
20.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結果是
A.A.331
B.41
C.2
D.1
二、2.填空題(20題)21.表示“整數x的絕對值大于5”時值為“假”的C語言表達式是______。
22.以下程序輸出的最后個值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
23.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
24.以下sstrcpy()函數實現字符串復制,即將t所指字符串復制到s所指向內存空間中,形成一個新的字符串s。請填空。
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
25.以下程序通過函數SunFun求這里f(x)=x2+1,由F函數實現。請填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
26.以下程序中,fun函數的功能是求3行4列二維數組每行元素中的最大值,請填空:
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:
}
}
27.以下程序是從終端讀入數據到數組中,統計其中正數的個數,并計算它們的和。請填
main()
{
inti,a[20],sum,count;
sum=count=【】;
for(i=0;i<20;i++)scanf("%d("%d",【】);
for(i=0;i<20;i++)
{
if(a[i]>0)
{count++;
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
28.以下函數的功能是計算s=1+1/2!+1/3!+…+1/n!,請填空。
doublefun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++);
{【】;
fac=fac/k
s=s+fac;
}
}
29.以下程序運行后的輸出結果是______。
#include<strlng.h>
main()
{
charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
30.Jackson方法是一種面向【】的結構化方法。
31.以下程序運行后的輸出結果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case1:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
32.設inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。
33.數據庫三級模式體系結構的劃分,有利于保持數據庫的【】。
34.在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
35.以下程序輸出的最后一個值是【】
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
36.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
37.函數delete(s,i,n)是作用是從字符串s中刪除從第i個字符開始的n個字符,請填空。
voiddelete(chars[],inti,intn)
{intj,k,length=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';
}
38.數據庫系統的三級模式分別為______模式、內部級模式與外部級模式。
39.數據的______結構在計算機存儲空問中的存放形式稱為數據的存儲結構或物理結構。
40.以下程序的功能是將字符串s中的數字字符放人d數組中,最后輸出d中的字符串。例如,輸入字符串abc123edf456gh,執行程序后輸出123456。請填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;)
d[j]='\0';
puts(D);
}
三、1.選擇題(20題)41.有以下程序段:intk=0;while(k=1)k++;while循環執行的次數是______。
A.無限次B.有語法錯,不能執行C.一次也不執行D.執行1次
42.設有charstr[10],下列語句正確的是()
A.scanf("%s"0,&str);
B.printf("%c",str);
C.printf("%s",str[0]);
D.printf("%s",str);
43.以下函數返回a所指數組中最小的值所在的下標值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)If(a[i]<a[p])______,return(p);}在橫線處應填入的是______。
A.i=pB.a[p]=a[i]C.p=jD.p=i
44.以下合法的字符型常量是
A.'\x13'B.'\081'C.'65'D.\n
45.軟件(結構)設計階段產生的文檔是______。
A.程序流程圖B.系統功能說明書C.系統模型說明書D.模塊結構圖和模塊說明書
46.以下敘述中錯誤的是()。
A.C語言源程序經編譯后生成后綴為.obj的目標程序
B.C程序經過編譯、連接步驟后才能形成一個真正可執行的二進制機器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCⅡ代碼形式存放在一個文本文件中
D.C語言中的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令
47.設a、b、c、d、m、n均為整型變量,且a=3、b=6、c=7、d=8、m=2、n=1,則邏輯表達式“(m=a>b)&&(n=c>d)”運算后,n的值為()。
A.0B.1C.2D.3
48.以下敘述中錯誤的是()。
A.C語言中對二進制文件的訪問速度比文本文件快
B.C語言中,隨機文件以二進制代碼形式存儲數據
C.語句PILEfp;定義了一個名為fp的文件指針
D.C語言中的文本文件以ASCII碼形式存儲數據
49.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節數是
A.1B.2C.7D.11
50.以下程序的輸出結果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
51.已有定義:chara[]="xyz",b[]={'x','y','z'};,下列敘述中正確的是()。
A.數組a和b的長度相同B.a數組長度小于b數組長度C.a數組長度大于b數組長度D.上述說法都不對
52.下列描述中,不是線性表順序存儲結構特征的是
A.不便于插入和刪除B.需要連續的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系
53.能直接與CPU交換信息的功能單元是()。
A.硬盤B.控制器C.主存儲器D.運算器
54.請選出以下程序的輸出結果______。#include<stdio.h>sub(x,y,z)intx,y,*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}
A.5,2,3B.-5,-12,-7C.-5,-12,-17D.5,-2,-7
55.以下程序中函數scmp的功能是返回形參指針s1和s2所指字符串中較小字符串的首地址#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));/*庫函數strcpy對字符串進行復制*/strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若運行時依次輸入:abcd、abba和abc三個字符串,則輸出結果為
A.abcdB.adbaC.abcD.abca
56.在C程序中,判斷邏輯值時,分別用()表示邏輯值“真”、“假”。
A.非00B.01C.非0非0D.11
57.在以下術語中,與數據的邏輯結構無關的是______。
A.線性結構B.鏈式結構C.樹型結構D.網狀結構
58.下列用于printf函數的控制字符常量中,代表“豎向跳格”的轉義字符常量是()。
A.\bB.\tC.\vD.\f
59.在C語言中,表達式10!=9的值是______。
A.真B.非零值C.0D.1
60.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性
四、選擇題(20題)61.程序流程圖(PFD.中的菱形代表的是()。
A.數據流B.控制流C.加工步驟D.邏輯條件
62.有以下程序在VC6平臺上編譯運行。程序運行后的輸出結果是(
)。
A.4,8B.4,4C.2,4D.10,6
63.C語言結構體類型變量在程序執行期間,()。
A.所有成員一直駐留在內存中B.沒有成員駐留在內存中C.部分成員駐留在內存中D.只有一個成員駐留在內存中
64.下列函數的功能是()。
A.將a所指字符串賦給b所指空間
B.使指針b指向a所指字符串
C.將a所指字符串和b所指字符串進行比較
D.檢查a和b所指字符串中是否有’\0
65.設x,y,z均為整型變量,現有如下語句x=y=z=1;(++x||(++y&&++z));,則執行這個語句后y的值為
A.2B.1C.0D.不定值
66.下列程序的輸出結果是()。
#include<stdio.h>
main()
{inti,s=0;
for(i=1;i<10;i++)
if(!(i%2)&&!(i%3))s+=i;
printf("%d\n",s);
}A.4B.39C.45D.6
67.有以下程序:
程序運行后的輸出結果是()。
A.0B.9C.6D.8
68.(22)下列關于棧的敘述中正確的是()
A.在棧中只能插入數據
B.在棧中只能刪除數據
C.棧是先進先出的線性表
D.棧是先進后出的線性表
69.
70.有以下程序
structSTU
{
charname[10];
intnum;
intScore;
};
main()
{
structSTUs[5]={{"YangSan",20041,703},
{"LiSiGuo",20042,580},
{"WangYin",20043,680},
{"SunDan",20044,550},
{"Penghua",20045,537}},*p[5],*t;
inti,j;
for(i=0;i<5;i++)
p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
printf("%d%d\n",s[1].Score,p[1]->Score);
}
程序運行后的輸出結果是
A.550550B.580550
C.680680D.580680
71.軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指()
A.模塊間的關系B.系統結構部件轉換成軟件的過程描述C.軟件層次結構D.軟件開發過程
72.以下不能正確定義二維數組的選項是A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4}};
73.若有定義“inta=5,b=7;”,則表達式a%=(b%2)運算后,a的值為()。
A.0B.1C.11D.3
74.
75.
76.
77.設有棧S和隊列Q,其狀態為空,元素a1,a2,a3,a4,a5,a6依次入棧,出棧的元素則進入隊列Q,若6個元素出隊列的順序是a2,a3,a4,a6,a5,a1,則棧的容量至少是
A.6B.4C.3D.2
78.設有如下三個關系表:
79.設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);
80.
若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執行下列語句后輸出的結果為()。
cb=b;
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);
A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
五、程序改錯題(1題)81.下列給定程序中,函數fun的功能是:求出s所指字符串中最后一次出現的t所指字符串的地址,并通過函數值返回,在主函數中輸出從此地址開始的字符串;’若未找到,則函數值為NULL。例如,當字符串中的內容為“123dabfl23dx”,t中內容為“ab”時,輸出結果應是“l23dx”。當字符串中的內容為“l23dabfl23dx”,t中內容為“aim”時,則程序輸出未找到信息“Notfound!”。請改正程序中的錯誤,使它能得出正確的結果。注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構!試題程序:
六、程序設計題(1題)82.N名學生的成績已在主函數中放人一個帶頭節點的鏈表結構中,h指向鏈表的頭節點。請編寫函數fun,其功能是:求出平均分,并由函數值返回。
例如,若學生的成績是:8576698591726487,則平均分應當是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填人你編寫的若干語句。
參考答案
1.Bstructdate中包含year、month、day這3個整型變量,一個整型變量占2個字節;sizeof是求所占字節數的運算符。
2.B選項A中,將二維數組a的6個元素都賦值為0,正確;選項B中,由于a包含2個元素,每個元素都是包含3個元素的一維數組,初始化列表中包含3個元素,每個元素是包含2個元素的數組,錯誤;選項C中,a的每個元素是包含3個元素的一維數組,初始化列表將a[0]的3個元素初始化為1,2,0,將a[1]的3個元素初始化為0,0,0,正確;選項D中,將a[0]初始化為1,2,3,將a[1]初始化為4,5,6,正確。本題答案為B選項。
3.B程序的功能為統計1~9這9個數中的奇數和。C語言中規定數組名代表數組的首地址,也就是第1個元素的地址,因此“*(t+i)”代表數組的第i+1個元素。程序的運行結果是1+3+5+7+9=25。故本題答案為B選項。
4.D解析:C語言規定,所有字符常量都可以化為整型常量來處理,因而字符常量也可以參與算術運算。注:字符常量參與算術運算時,其實是使用其對應的ASCII碼值進行計算。本題中,'a'對應的ASCII碼值是97。題中雖然沒有給'6'和'0'的ASCII碼值,但應該知道'6'-'0'是將字符'6'轉換成整數6的表達式,所以c1='a'+'6'-'0'=103,c2='a'+'3'-'0'=100,按照字符型輸出分別是g和d。
5.B
6.A在本題中,程序首先定義一個返回類型為整型的函數fun,該函數帶有一個指針型的形參變量str,從主函數中對其調用時傳遞的參數我們可以知道,該指針指向的是一個數組,在該函數體中,首先定義兩個整型變量,然后執行循環,循環變量i的初始值為0,循環結束的條件是str[i]!=’\\0’,表示取到的數組元素是字符串結束標識,即字符串中的字符被處理完,在循環體中,首先執行條件判斷語句if(str[i]!=’’),如果結果為真,說明取到的當前字符不是空字符,這時執行str[j++]=str[i],即將非空格字符保存到數組中;如果為假,說明取到了空格字符,此時不保存,而接著執行下次循環跳過空格字符。循環結束后執行str[j]=’\\0’;,即保存字符結束標識符,用來標識字符串結束。通過上面的這些分析,我們可以知道函數fun的作用是去掉字符數組中的空格字符。
在主函數中,首先定義了一個大小為81的字符數組,然后調用函數clrscr()清除輸入文本窗口,接著輸出一條提示語句,執行gets(str);語句,該語句的作用是從鍵盤輸入一個字符串到str數組,碰到換行符結束。然后調用函數fun,其實參為str。通過上面對函數fun作用的分析我們可以知道,調用函數后輸入字符串中的空格符都被刪除了,最后得到的字符串為asdafaaz67。
程序最后執行輸出語句,輸出字符數組str中的字符串,因此,程序最終的輸出結果是asdafaaz67,本題答案選A。
7.A程序定義整型的全局變量a,初值為5,main函數定義整型局部變量a,初值為4。所以在main函數中,局部變量a屏蔽全局變量a。func函數中定義局部變量b,初值為5,定義靜態變量c,初值為5,并且在func函數中變量a引用的是全局變量a。綜上,我們使用a_a代表全局變量a,使用m_a代表main函數中局部變量a。main函數中,當k=0時,a_a=5,m_a=4,調用函數func(4),函數func中d的值為4,b的值為5,c的值為5,執行表達式“a_a--;b--;--c;--d;”后,a_a的值為4,b的值為4,c的值為4,d的值為3,a+b+c+d的值為15,程序輸出15。當k=1時,a_a=4,m_a=3,調用函數func(3),函數func中d的值為3,b的值為5,c的值為4(靜態變量使用上一次調用結束時的值),執行表達式“a_a--;b--;--c;--d;”后,a_a的值為3,b的值為4,c的值為3,d的值為2,a+b+c+d的值為12,程序輸出12。當k=2時,a_a=3,m_a=2,調用函數func(2),函數func中cl的值為2,b的值為5,c的值為3,執行表達式“a_a--;b--;--c;--d;”后,a_a的值為2,b的值為4,c的值為2,d的值為1,a+b+c+d的值為9,程序輸出9。本題答案為A選項。
8.A函數名代表函數的入口地址,函數指針P指向一個同類型的函數f時,可以寫成“p=f;”,而不能寫成“P=&f;”,選項B錯誤。指針p指向一個數組f時,可以寫成“p=f;”,數組名f代表數組的首地址,選項C錯誤。指針變量指向的是變量的地址,選項D錯誤。char型根據轉化原則可以轉化為double類型。故本題答案為A選項。
9.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六進制數,轉為十進制數x=9。“printf(“%C\\n”,‘A’+9);”,輸出格式要求是“%c”,因此將字符‘A’按字母順序向后偏移9個位置,可得結果為“J”。故本題答案為B選項。
10.C
11.B
12.A
13.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現媒體五種,“多媒體技術”中的媒體強調的是感覺媒體。
14.C解析:每個C程序有且只有一個主函數main(),且程序必須從main函數開始執行,并在main()函數中結束。
15.C該程序中int8pl=&a,+p2=&b,4P=&c;指定義三個指針變量,并賦值,即使pl指向a;p2指向b;p指向c。+P=。pl$(+p2)。;該條語句是給P所指的存儲單元c賦值,就是pl所指的存儲單元的值,即a的值,與p2所指的存儲單元b的值相乘,也就是c=a+b,等價于c=1·3=3;因此C選項正確。‘
16.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統,對數據的存儲結構和存取方法進行設計,從而實現從邏輯結構到物理結構的轉換。從系統開發的角度來看,結構特性設計和行為特性-設計是數據庫應用系統所具有的兩個特性。結構特性的設計,設計各級數據庫模式(靜態特性):行為特性的設計,改變實體及其特性,決定數據庫系統的功能(動態特性)。
17.B
18.Dmain函數中,fun(fun(t))嵌套調用fun函數。第一次調用為fun(1),調用后,a[3]={1,3,5},輸出1,3,5,返回a[1]=3。第二次調用為fun(3),調用后,a[3]={一1,3,7},輸出一l,3,7。
19.B
\n本題考查函數調用的基本概念。調用函數時,實參的形式可以是具體的數值,也可以是表達式。實參將數值或表達式的值傳遞給形參,因而兩者的類型必須保持一致;形參在運算過程中會發生改變,但不一定會影響到實參值,所以可知兩者不共用內存單元。
\n
20.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執行指定的動作,由if引導條件為“真”時執行的操作;由else引導條件為“假”時執行的操作。else語句要與上面最近的if語句進行匹配,如果要嵌套調用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執行外層if語句,執行條件為x>y,由于x=1,y=2,故該條件為假,不執行if的子語句,直接執行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進行x++操作。x的初始值為1,輸出結果為1。
21.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達,“整數x的絕對值大于5”時值為“假”,即整數x的絕對值小于等于5,也就是整數x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達式為:(x>-5)&&(x<5)。
22.120120解析:靜態變量的類型說明符是static,靜態局部變量屬于靜態存儲方式,它具有以下特點:
靜態變量的類型說明符是static,靜態局部變量屬于靜態存儲方式,它具有以下特點:
①靜態局部變量屬于靜態存儲類別,在靜態存儲區內分配存儲單元。在程序整個運行期間都不釋放。
②對靜態局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調用函數時不再重新賦初值而只是保留上次函數調用結束時的值。
③如在定義局部變量時不賦初值的話,則對靜態局部變量來說,編譯時自動賦初值0(對數值型變量)或空字符(對字符變量)。(注意:C語言中非靜態變量在定義時,系統并不會自動給它賦初值)
④雖然靜態局部變量在函數調用結束后仍然存在,但其他函數是不能引用它的。本題中函數的功能是:與for語句一起求一個整數的階乘。
23.1010解析:整型指針最初被賦的值是數組arr的頭指針,即指向數組的第一個元素30,p++后,指針指向數組的下一個元素,即*p=arr[1]=25,在執行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。
24.*t++或*(t++)*t++或*(t++)解析:主函數中定義了兩個字符型數組st1l和str2,并且給str2賦初值“abcdefgh”,接著調用函數sstrcpy(str1,str2),將字符串str2的值賦給str1.在函數sstrcpy(*s,*t)中,用了一個while循環,每循環一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后指針s和指針t都下移到下一個元素。所以空格處應該填*t++或*(t++)。
25.xx*x+1或1+x*xx\r\nx*x+1或1+x*x解析:題目中要求從x=0開始將f(x)的值累加起來,直到x=10。在SunFun()函數中用了一個for循環,每循環一次將f(x)累加到s中,所以在本題的第一個空格處我們應該填x,然后x+1,共循環10次。F()函數的功能應該是求數學表達式f(x)的值,所以其返回值應該為x*x+1。
26.br[i]br[i]解析:函數fun的功能是求出二維數組每行元素中的最大值。對于3行4列的二維數組將有3個最大值存放到數組br[]中。x存放的是每行的最大值,當求出每行的最大值x后,應該將x賦值給br[]。因此此處填空應該是br[i]。
27.0&a[i]a[i]0\r\n&a[i]\r\na[i]解析:本題要求從終端讀入數據到數組中,統計其中正數的個數,并計算它們的和。程序中首先要對存放正數個數的變量count及存放和值的變量sum初始化為0,所以第一空應填0。接著要求從終端讀入數據到數組中,可以通過scanf函數實現,因此第二空應填&a[i]。最后通過sum+=a[i];語句累加正數a[i]的值到sum中,因此第三空應填a[i]。
28.k=k*ik=k*i解析:本題中通過for循環求s表達式中每一項的和,表達式“fac=fac/k;”求的是每一項的值,所以k的值應為n!,在求n!的時候,可以用上次循環階乘的值乘i,就可以直接得此次n!,故本題填k=k*i。
29.abcbccabcbcc解析:strcpy()函數有兩個字符指針參數,功能是將第2個參數所指的字符串(包括字符串結束標志\'\\0\')復制到第1個參數所指的內存地址中.題目程序中使用?兩個for循環,都是讓i從0遞增到2循環3次。第1個循環將字符數組ch中的字符串'abe'復制到;維數組x[3][4]的每1行,笫2個for循環每次輸出x[i][j]中的字符串,即三次分別輸出從x[0][0]、x[1][1]、x[2][2]開始的字符串的內容。故三次分別輸出abc、bc、c,結果為abcbcc。
30.數據結構數據結構解析:Jackson方法是—‘種面向數據結構的結構化方法。
31.130130解析:本題主函數中用了一個for循環,循環了3次:當i=9時,i/10=0,執行switch語句中case0分支,m和n的值各增1,變為1和1,然后遇到break語句,退出switch語句;當i=10和11時,i/10都等于1,執行switch語句中的case1分支,兩次使n增1,變為3,退出switch語句。故該空格處應該填130。
32.77解析:此表達式為三目運算符,++a的值為6,b--的值為6,則整個表達式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區別。
33.數據獨立性數據獨立性解析:數據庫的三級模式體系結構把數據的組織管理工作進行了劃分,把數據的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數據,而不必關心數據在計算機中的具體表示方式與存儲方式,保證了數據的獨立性。
34.中序中序解析:在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。
35.120120解析:靜態變量的類型說明符是static,靜態局部變量屬于靜態存儲方式,它具有以下特點:
①靜態局部變量屬于靜態存儲類別,在靜態存儲區內分配存儲單元。在程序整個運行期間都不釋放。
②對靜態局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調用函數時不再重新賦初值而只是保留上次函數調用結束時的值。
③如在定義局部變量時不賦初值的話,則對靜態局部變量來說,編譯時自動賦初值0(對數值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態變量在定義時,系統并不會自動給它賦初值)
④雖然靜態局部變量在函數調用結束后仍然存在,但其他函數是不能引用它的。
本題中函數的功能是:與for語句一起求一個整數的階乘。
36.概念設計階段(數據庫概念設計階段)概念設計階段(數據庫概念設計階段)
37.length++i<lengthlength++\r\ni<length解析:第一個循環極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是第i個到第i+n或最后一個間的所有字符。刪除前,應判斷i<=length。由于已經進行了-i運算,故實際應填入i<length。
38.概念(或概念級)概念(或概念級)
39.邏輯邏輯解析:數據的邏輯結構在計算機存儲空間中的存放形式稱為數據的存儲結構或物理結構。
40.s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57解析:根據題意,if語句的條件應當是判斷數組元素s[i]是否為數字,故正確答案為:s[i]>='0'&&s[i]<='9'或s[i]>=48&&s[i]<=57,其中48是字符0的ASCII碼值,57是字符9的ASCII碼值。
41.A解析:注意本題有個陷阱,馬虎的考生將紛紛落馬。本來、while中的表達式應為k==1,而本題卻為k=1,是賦值表達式而不是邏輯表達式。因此,編譯器將其值一直認為是1,因此表達式一直為真,陷入無限次的循環。
42.D
43.D解析:該程序先判斷a[i]<a[p],如果條件為真,則a[i]比當前設定的最小值小(p保留的當前最小元素的下標),那么將i賦給p,即將比較過的最小元素下標保留在p中,作為下面判斷的標準。
44.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd'表示1到3位8進制數所代表的字符;形式“\\xhh'表示1到2位16進制數所代表的字符。在本題中,\'\\x13\'表示回車符,是一個字符常量;\'\\081\'用8進制數所代表的字符,但形式不正確,因為8進制數所代表的字符中不會出現數字“8”;\'5\'不是一個字符,而是一個十進制數字;\'\\n\'是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
45.D
46.D解析:C語言程序編譯時,每條可執行語句將轉換為二進制的機器指令,非執行語句如注釋語句等不被編譯。
47.B解析:在&&運算中,當第一個表達式的值為假時,第二個表達式將不再運算。由于在表達式(m=a>b)&&(n=c>d)中,a>b的值為0,即第一個表達式的值為假,第二個表達式將不再運算,所以n的值沒有變化,仍然為1。所以,4個選項中選項B符合題意。
48.C解析:FILE是由系統定義的一個結構體類型,并用該類型來定義若干個FILE類型的變量。用FILE定義的變量必須是數組或指針,選項C)中的fP應該改為*fP。
49.D解析:結構體變量所占用內存的字節數是其所有成員所占用內存字節數之和。本題中整型變量i所占用的內存是2字節,字符型變量ch所占用的內存是1字節,雙精度型變量f所占用的內存是8字節,三者相加即可。
50.A解析:觀察子函數fun()可知,它是實現—個數組首末元素位置互相依次交換。聯系主函數,可以看出,是對字符串中的元素依次進行首末位置的對調。
51.A解析:字符數組現)中用字符串常量“xyz”進行初始化,字符數組a[]的長度為寧符的個數,所以其值為3,并不包括字符串結束標記'\\0';字符串數組b[]用3個字符'x'、'y'、'z'來初始化,所以其字符串的長度等于3。
52.D解析:線性表的順序存儲是用一片連續的空間來存放數據元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數據元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。
53.C運算器和控制器都是CPU的一部分,顯然不可能是正確答案,而硬盤中的程序、數據首先要調入內存儲器中,因為它不能直接與CPU打交道。
54.B解析:sub()函數的作用是將形參y和x的差賦給了z指向的那個內存地址,所以在sub(10,5,&A),10和5屆于值傳遞,a是屬于地址傳遞,也就是a與z指向了同一個存儲單元,在執行函數后,a的值隨*z變化,所以此次函數被調用后,a的值為y-x=-5,同理可知,在sub(7,a,&B)后,b的值發生變化,其值為-5-7=-12,在sub(a,b,&c)后,c的值發生變化,其值為-12-(-5)=-7。
55.A解析:字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符ASCII碼值較大時,該字符所在的字符串就是較大的字符串。主函數中調用了函數scmp(),分析不難知道該函數的作用是返回參加比較的兩個字符串中的較小的字符串,它的主函數中定義了一個二維字符數組來存放三個字符串。接著通過for循環給每個字符串賦值,賦值后三個字符串分別為“abcd”、“abba”、“abc”,接著比較str[0]和str[1]的大小,根據字符串大小比較標準可知str[0]較小,然后通過函數strcpy()把str[0]中的字符串,拷貝到string中,然后比較string和str[2)的大小,比較結果是string較小,最后輸出string的值為“abcd”。
56.A解析:在C程序中,判斷邏輯值時,用非0表示“真”,用0表示“假”。計算邏輯表達式時,邏輯表達式的值為“真”是用1表示的,若邏輯表達式的值為“假”,則用0表示。
57.B
58.C本題考查C語言轉義字符的含義。我們歸類了常用的轉義字符及其含義,如下,根據這些不難選出正確答案
轉義字符的意義:\n回車換行、\t橫向跳到下一制表位置、\v豎向跳格、\b退格、\r回車、\f走紙換頁、\\反斜線符、“\”\′單引號符、\\ddd1~3位八進制數所代表的字符、\xhh1~2位十六進制數所代表的字符。
59.D
60.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。
61.D程序流程圖是軟件設計過程中常用的圖形描述工具之一。構成程序流程圖的最基本符號有:“→”或“↓”表示控制流,“口”表示加工步驟,“
”表示邏輯條件。
62.Ac語言中利用sizeof()函數判斷數據類型長度,在VC6平臺中,整型數據int占4個字節,double型數據占8個字節。因此本題答案為A)。
63.A解析:C語言結構體類型變量在程序執行期間所有成員一直駐留在內存中。
64.A表達式*b=*a是將a所指的字符賦給b所指的空間,然后,指針a和b依次后移,直到到達指針a所指字符串的結尾。
65.B本題考查邏輯表達式“||”的求解過程。
在邏輯表達式的求解中,并不是所有的邏輯運算符都被執行,只是必須執行該邏輯表達式時才求出表達式的解。“||”為邏輯或運算,只有當該運算符左右兩邊的表達式都為假時(值為0),該邏輯運算的值才為假。只要有一個表達式為真,則該邏輯運算的值就為真。
進行邏輯或運算時,只要運算符左邊的表達式為真(值不為0),則不用運行運算符右邊的表達式。
題目中,初始時x、y、z的值都為1,運算符“||”左邊為表達式++x,右邊為表達式(++y&&++z)。程序運行時先判斷表達式++x的值,該值為2,故該邏輯運算值為真,不需要執行運算符右邊的表達式。
66.Dif語句的條件是當i既是3的倍數又是2的倍數時成立,所以此程序實現的功能是將10以內既是3的倍數又是2的倍數的數相加。
67.C主函數中調用f函數,同時將數值3傳遞給變量x,執行條件不滿足條件if(x==0IlX==1);跳過re—turn(3);,直接執行語句Y=X}X—f(x一2);這里f(x一2)為函數的遞歸調用,再次訶用f函數,此時x=1,判斷條件成立,返回3給f(1),Y=3}3—3=6,最后將6返回主函數,并進行輸出。因此c選項正確。
68.D
69.D
70.B本題實際上是按成員變量Score的值進行由小到大的排序,程序執行后,數組p[5]中各元素分別為:
{{'Penghua',20045,537},
{'SunDan',20044,550},
{'LiSiGuo',20042,580},
{'WangYin',20043,680},
{'YangSan',20041,703}}
所以,p[1]->Score=550,s[1].Score=580。故本題答案為B。
71.B軟件設計包括軟件的結構設計、數據接口設計和過程設計。其中軟件結構設計主要包括系統由哪些子系統構成,以及這些子系統之間的關系是怎樣的,并將這些內容編寫成文檔;數據接口設計的任務是為每個子系統設計其與其他子系統間的接口,并編寫成文檔,這個接口要是一個無二義的接口,不需要子系統的操作知識就可以使用;過程設計是指系統結構部件轉換成軟件的過程描述。
72.D解析:選項A)定義的數組按行各數組元素分別是:1,0,2,0;選項B)定義的數組按行各數組元素分別是:1,2,3,4;選項C)定義的數組按行各數組元素分別是:1,0,2,3;因為定義數組時,第一維的長度可以不指定,第二維的長度必須指定,所以選項D)錯。
73.A本題考查“%”運算符的使用。運算符“%”是整數除法的余數。本題中表達式a%=(b%2)等價于a=a%(b%2)=5%(7%2)=5%1=0。
74.B
75.B
76.B
77.C本題主要考查棧和隊列的基本特性。棧是限定僅在表尾進行插入和刪除操作的線性表,而隊列則只允許在隊尾進行插入操作,在隊頭進行刪除操作。棧對數據元素的操作具有先進后出的特點,而隊列對數據元素的操作具有先進先出的特點。
本題要求對棧和隊列一起操作,將出棧S的元素進入隊列Q,元素出隊的順序是a2,a3,a4,a6,a5,a1,根據隊列的特性,那么元素入隊的順序也應該為a2,a3,a4,a6,a5,a1,這也就說明元素出棧的順序為a2,a3,a4,a6,a5,a1,但元素入棧的順序是a1,a2,a3,a4,a5,a6,根據這兩個序列,我們可以推斷出元素入棧出棧的過程為:首先a1入棧,它不馬上出棧,而是讓a2入棧,然后a2出棧,a3、a4分別入棧后又出棧,接著a5入棧,而不接著出棧,而是讓a6入棧,這時,棧S中元素的個數為3個,分別是a1,a5,a6。因此,棧的容量至少為3。
78.B兩個相同結構關系的“并”是由屬于這兩個關系的元組組成的集合。
79.C由題目的已知條件函數fun的定義形式voidfun(charch,floatx){…)可知第一個形參為字符型,所以A不符合,第二個形參為精度型,所以D不符合,函數fun定義為void型(無論返回值型),故其沒有返回值,所以選項B錯誤。選項C的第一個實參的類型為字符型,第二個實參的類型為單精度型,與函數fun的形式參數的類型相符合,所以選項C為正確答案。
80.C
\n第1個printf函數,格式說明的個數是2,而輸出項的個數是3,所以對于多余的輸出項k不予輸出;第2個printf函數,有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數的格式。①“%x”和“%0”分別表示以十六進制和八進制無符合型輸出整型數據(不帶前導ox或0);②printf函數中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數,也要相等,如果格式說明的個數少于輸出項的個數,則對于多余的輸出項不予輸出。
\n
81.
82.
【考點分析】
本題考查:鏈表的操作,對鏈表的主要操作有以下幾種:建立鏈表、結構的查找與輸出、插入一個結點、刪除一個結點。
【解題思路】
題目要求求鏈表中數據域的平均值,應首先使用循環語句遍歷鏈表,求各結點數據域中數值的和,再對和求平均分。遍歷鏈表時應定義一個指向結點的指針P,因為“頭結點”中沒有數值,所以程序中讓P直接指向“頭結點”的下一個結點,使用語句STREC+P=h÷next。2022年安徽省淮南市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列程序的運行結果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
2.以下不能對二維數組a進行正確初始化的語句是()。A.inta[2][3]={0};
B.inta[2][3]={{1,2},{3,4},{5,6}};
C.inta[][3]={{1,2},{0}};
D.inta[][3]={1,2,3,4,5,6};
3.有以下程序:#include<stdio.h>main(){inti,s=0,t[]=(1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}程序的運行結果是()。
A.20B.25C.45D.36
4.已知字母a的ASCII碼為十進制數97,下面程序的輸出結果是()。#include<stdio.h>main(){charc1,c2;c1='a'+'6'-'0';c2='a'+'3'-'0';printf("%c,%c\n",c1,c2);}
A.輸出無定值B.d,eC.e,fD.g,d
5.
6.如下程序段
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
intfun(char*str)
{inti,j=0;
for(i=0;str[i]!=’\0’;i++)
if(str[i]!=’’)str[j++]=str[i];
str[j]=’\0’;
}
main()
{
charstr[81];
intn;
clrscr();
printf("Inputastring:");
gets(str);
fun(str);
printf("%s\n",str);
}
當運行程序時,輸入asdafaaz67<回車>,則輸出是A.A.asdafaaz67
B.asdafaaz67
C.asd
D.z67
7.有下列程序:程序執行后的輸出結果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
8.關于地址和指針,以下敘述正確的是()。
A.可以通過強制類型轉換讓char型指針指向double型變量
B.函數指針P指向一個同類型的函數f時,必須寫成“p=&f;”
C.指針P指向一個數組f時,必須寫成“P=&f;”
D.—個指針變量P可以指向自身
9.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序運行后的輸出結果是()。
A.IB.JC.KD.H
10.
11.設有兩個串p和q,求q在p中首次出現的位置的運算稱為()。
A.連接B.模式匹配C.求子串D.求串長
12.下列語句中,顯示沒有下畫線的超鏈接的語句是()。
A.a{text—decoration:none}
B.a{text—decoration:nounderline}
C.a{underline:none}
D.a{decoration:nounderline}
13.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調的是()。
A.存儲媒體B.表現媒體C.傳輸媒體D.感覺媒體
14.C語言可執行程序的開始執行點是()。
A.包含文件中的第一個函數B.程序中第一個函數C.程序中的main()函數D.程序中第一條語句
15.有以下程序:
程序執行后的輸出結果是()。
A.1B.2C.3D.4
16.數據庫設計包括兩個方面的設計內容,它們是()。
A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計
17.
18.以下程序運行后的輸出結果是()。
A.1,2,3,1,5,9,
B.1,3,5,1,3,5,
C.1,3,5,0,d,8,
D.1,3,5,-1,3,7,
19.下列說法不正確的是()。
A.調用函數時,實參可以是表達式
B.調用函數時,實參與形參可以共用內存單元
C.調用函數時,將實參的值復制給形參,使實參變量和形參變量在數值上相等
D.調用函數時,實參與形參的類型必須一致
20.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運行結果是
A.A.331
B.41
C.2
D.1
二、2.填空題(20題)21.表示“整數x的絕對值大于5”時值為“假”的C語言表達式是______。
22.以下程序輸出的最后個值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
23.以下程序的輸出結果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
24.以下sstrcpy()函數實現字符串復制,即將t所指字符串復制到s所指向內存空間中,形成一個新的字符串s。請填空。
voidsstrcpy(char*s,char*t)
{while(*s++=______);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
25.以下程序通過函數SunFun求這里f(x)=x2+1,由F函數實現。請填空。
main()
{printf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
}
F(intx)
{return(【】);}
26.以下程序中,fun函數的功能是求3行4列二維數組每行元素中的最大值,請填空:
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:
}
}
27.以下程序是從終端讀入數據到數組中,統計其中正數的個數,并計算它們的和。請填
main()
{
inti,a[20],sum,count;
sum=count=【】;
for(i=0;i<20;i++)scanf("%d("%d",【】);
for(i=0;i<20;i++)
{
if(a[i]>0)
{count++;
sum+=【】;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
28.以下函數的功能是計算s=1+1/2!+1/3!+…+1/n!,請填空。
doublefun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++);
{【】;
fac=fac/k
s=s+fac;
}
}
29.以下程序運行后的輸出結果是______。
#include<strlng.h>
main()
{
charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
30.Jackson方法是一種面向【】的結構化方法。
31.以下程序運行后的輸出結果是【】。
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case1:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
32.設inta=5,b=6,表達式(++a==b--)?++a:--b的值是【】。
33.數據庫三級模式體系結構的劃分,有利于保持數據庫的【】。
34.在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
35.以下程序輸出的最后一個值是【】
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i));
}
36.數據庫設計分為以下6個設計階段:需求分析階段、______、邏輯設計階段、物理設計階段、實施階段、運行和維護階段。
37.函數delete(s,i,n)是作用是從字符串s中刪除從第i個字符開始的n個字符,請填空。
voiddelete(chars[],inti,intn)
{intj,k,length=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';
}
38.數據庫系統的三級模式分別為______模式、內部級模式與外部級模式。
39.數據的______結構在計算機存儲空問中的存放形式稱為數據的存儲結構或物理結構。
40.以下程序的功能是將字符串s中的數字字符放人d數組中,最后輸出d中的字符串。例如,輸入字符串abc123edf456gh,執行程序后輸出123456。請填空。
#include<stdio.h>
#include<ctype.h>
main()
{chars[80],d[80];inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(【】){d[j]=s[i];j++;)
d[j]='\0';
puts(D);
}
三、1.選擇題(20題)41.有以下程序段:intk=0;while(k=1)k++;while循環執行的次數是______。
A.無限次B.有語法錯,不能執行C.一次也不執行D.執行1次
42.設有charstr[10],下列語句正確的是()
A.scanf("%s"0,&str);
B.printf("%c",str);
C.printf("%s",str[0]);
D.printf("%s",str);
43.以下函數返回a所指數組中最小的值所在的下標值:fun(int*a,intn){inti,j=0,p;p=j;for(i=j;i<n;i++)If(a[i]<a[p])______,return(p);}在橫線處應填入的是______。
A.i=pB.a[p]=a[i]C.p=jD.p=i
44.以下合法的字符型常量是
A.'\x13'B.'\081'C.'65'D.\n
45.軟件(結構)設計階段產生的文檔是______。
A.程序流程圖B.系統功能說明書C.系統模型說明書D.模塊結構圖和模塊說明書
46.以下敘述中錯誤的是()。
A.C語言源程序經編譯后生成后綴為.obj的目標程序
B.C程序經過編譯、連接步驟后才能形成一個真正可執行的二進制機器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCⅡ代碼形式存放在一個文本文件中
D.C語言中的每條可執行語句和非執行語句最終都將被轉換成二進制的機器指令
47.設a、b、c、d、m、n均為整型變量,且a=3、b=6、c=7、d=8、m=2、n=1,則邏輯表達式“(m=a>b)&&(n=c>d)”運算后,n的值為()。
A.0B.1C.2D.3
48.以下敘述中錯誤的是()。
A.C語言中對二進制文件的訪問速度比文本文件快
B.C語言中,隨機文件以二進制代碼形式存儲數據
C.語句PILEfp;定義了一個名為fp的文件指針
D.C語言中的文本文件以ASCII碼形式存儲數據
49.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節數是
A.1B.2C.7D.11
50.以下程序的輸出結果是_______。#include<string.h>main(){char*a="abcdefghi";intk;fun(a);puts(a);}fun(char*s){intx,y;charc;for(x=0,y=strlen(s)-1;x<y;x++,y--){c=s[y];s[y]=s[x];s[x]=c;}}
A.ihgfedcbaB.abcdefghiC.abcdedcbaD.ihgfefghi
51.已有定義:chara[]="xyz",b[]={'x','y','z'};,下列敘述中正確的是()。
A.數組a和b的長度相同B.a數組長度小于b數組長度C.a數組長度大于b數組長度D.上述說法都不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 炸雞店的社會責任活動
- 高光修容 打造立體面部效果
- 2025年工業互聯網平臺網絡切片技術在照明電器行業的應用案例報告
- 環境災害應急響應預案培訓實施效果評估重點基礎知識點歸納
- 元旦快樂輕松講故事
- 小型土木工程項目的BIM應用揭秘
- 護理中的研究概述
- 護理中的產房護理
- 房地產項目中的環境因素考慮
- 房地產項目的融資風險管理
- 消防在建工地課件
- 南海課件下載
- 彩鋼板圍擋施工與拆除一體化服務協議
- 中班安全標識課件
- 殯儀館物業服務管理制度
- 電大:理論聯系實際闡述文化在社會發展中具有什么樣的作用?參考答案03
- 2025貴州醫科大學輔導員考試試題及答案
- 原發性肝癌診療指南(2024年版)解讀
- 2025-2030中國自動鉚接機行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025年餐飲管理與服務質量考試試卷及答案
- 廣東省風力發電內蒙古分公司廣東能源集團招聘筆試題庫2025
評論
0/150
提交評論