版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年安徽省阜陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.根據(jù)二叉樹的定義可知道二叉樹共有種不同形態(tài)的二叉樹()。
A.3B.4C.5D.7
3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu
B.efgabcdmnopqhijkIrstuvwxyz
C.efgacdmopqhjkIrvwxyz
D.eefgaabcdmmnopqhhijkIrrstuvwxyz
4.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
5.以下選項(xiàng)中合法的C語言常量是()。
A.2.0KbB.”C++’C.”\2.0D.1.01
6.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
7.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序運(yùn)行后的輸出結(jié)果是()。A.1,2B.3,4C.5,6D.123,456
8.在JavaScript語言中,要定義局部變量則可以()。
A.由關(guān)鍵字private在函數(shù)內(nèi)定義
B.由關(guān)鍵字private在函數(shù)外定義
C.由var在函數(shù)內(nèi)定義
D.由關(guān)鍵字var在函數(shù)外定義
9.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A.11B.21C.6D.120
10.下列選項(xiàng)中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
11.
下列程序執(zhí)行后的輸出結(jié)果是()。
voidfunc(int*a,intb[])
{b[0]=*a+b;}main
{inta,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A.6B.7C.8D.9
12.在三級(jí)模式之間引入兩層映像,其主要功能之一是()。
A.使數(shù)據(jù)與程序具有較高的獨(dú)立性B.使系統(tǒng)具有較高的通道能力C.保持?jǐn)?shù)據(jù)與程序的一致性D.提高存儲(chǔ)空間的利用率
13.C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是()。
A.%=B./C.=D.<=
14.以下合法的字符型常量是A.B.C.D.
15.
16.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun
A.7,431B.6C.980D.6,980
17.
18.有以下程序:#include<stdio.h>voidfunc(intn){inti;for(i=0;i<=n;i++)printf("*"):printf("#");}main(){func(3);printf("????");func(4);printf("n\");程序運(yùn)行后的輸出結(jié)果()。A.****#????***#
B.***#????****#
C.**#????****#
D.****#????*****#
19.已知一個(gè)長度為32的有序表,若采用二分查找一個(gè)不存在的元素,則比較次數(shù)最多是()
A.4B.5C.6D.7
20.若一組記錄的排序碼為(7,9,3,5,1,2,10),則利用堆排序的方法建立的初始堆為()
A.10,7,9,3,5,1,2
B.10,9,7,5,1,2,3
C.10,9,7,5,3,2,1
D.10,9,7,3,2,1,5
二、2.填空題(20題)21.在對(duì)文件進(jìn)行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。
22.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}
23.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>,則輸出結(jié)果是【】。
#include
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
24.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個(gè)。
25.以下程序的輸出結(jié)果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
26.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
27.以下函數(shù)sstrcat()的功能是實(shí)現(xiàn)字符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abodefgh。請(qǐng)?zhí)羁铡?/p>
#include<string.h>
voidsstrcat(char*s,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
}
28.下面的語句要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?/p>
p=【】malloc(sizeof(double));
29.有以下程序段:
inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是【】。
30.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=[9];[10]:a[N-1][i];}}
31.下面程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
#defineSlZE12
main()
{chars[SIZE];inti;
for(i=0;i<SIZE;i++)s[i]='A'+i+32;
sub(s,5,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;
}
}
32.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
33.以下程序運(yùn)行時(shí)若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
34.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
35.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
36.現(xiàn)有兩個(gè)C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入Thank!,則輸出結(jié)果是【】。
37.執(zhí)行下列程序的輸出結(jié)果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
38.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
39.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。
例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>
#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);
}
40.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
三、1.選擇題(20題)41.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合
42.下列程序的輸出結(jié)果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);
A.1010B.1212C.1110D.1113
43.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個(gè)DBF文件B.數(shù)據(jù)庫是一個(gè)關(guān)系C.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
44.在一介C源程序文件中,要定義一個(gè)只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使削的存儲(chǔ)類別是()。
A.autoB.registerC.externD.static
45.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
46.以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是_______。
A.typedefstructaa{intn;floatm;}aa;aatd1;
B.#defineaastructaaaa{intn;floatm;}td1;
C.struct{intn;floatm;}aa;structaatd1;
D.struct{intn;floatm;}td1;
47.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
48.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
49.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
50.以下不合法的用戶標(biāo)識(shí)符是______。A.j2KEYB.DoubleC.4dD._8_
51.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序執(zhí)行后變量w中的值是A.5.21B.5C.5.0D.0.0
52.下列選項(xiàng)中不是結(jié)構(gòu)化程序基本結(jié)構(gòu)的是
A.順序結(jié)構(gòu)B.跳轉(zhuǎn)分支結(jié)構(gòu)C.選擇結(jié)構(gòu)D.循環(huán)結(jié)構(gòu)
53.以下敘述中錯(cuò)誤的是A.計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序
B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
D.后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
54.設(shè)有下列二叉樹:
對(duì)此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
55.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個(gè)元素都有一個(gè)直接前件和直接后件
B.線性表中至少要有一個(gè)元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件
56.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
57.某二叉樹中度為2的結(jié)點(diǎn)有10個(gè),則該二叉樹中有()個(gè)葉子結(jié)點(diǎn)。
A.9B.10C.11D.12
58.能正確表“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
59.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
60.以下定義語句中正確的是()。
A.inta=b=0;
B.charA=65+1,b='b';
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.2B.0C.3D.5
62.
63.以下選項(xiàng)中可用做C程序合法實(shí)數(shù)的是()。
A..leOB.3.0e0.2C.E9D.9.12E
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7,4.2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,
65.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.差C.交D.并
66.在HTML頁面中哪些部分能夠插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
67.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
68.有以下程序:
當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個(gè)字符]12<;CR>;34<;CR>;則輸出結(jié)果是()。
A.12B.123C.1234D.12343
69.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.1,2B.2,4C.1,4D.2,3
70.下面程序輸出的是()。
main
{intt=l;fun(fun(t));}
fun(inth)
{staticinta[3]={1.2.3};
intk;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("\n");
return(a[h]);}A.A.1,2,3,1,5,9,B.1,3,5,1,3,j,
C.1,3,5,0,4,8,
D.1,3。5,-1,3,7,
71.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
72.有以下程序
73.
74.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。
A.不確定B.編譯錯(cuò)誤C.gD.輸出null字符
75.(69)單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為()
A.外模式
B.概念模式
C.內(nèi)模式
D.存儲(chǔ)模式
76.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.可行性分析報(bào)告B.軟件需求規(guī)格說明書C.概要設(shè)計(jì)說明書D.集成測(cè)試計(jì)劃
77.用數(shù)據(jù)流圖(DFD.作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.概要設(shè)計(jì)D.詳細(xì)設(shè)計(jì)
78.有以下程序
#include"stdio.h"
voidfun(int*a,int*b)
{intc=20,d=20;
*a=c/3;
b=d/5;}
main()
{inta=3,b=5;
fun(&a,&b);
printf("%d,%d\n",a,b);
}
程序的運(yùn)行結(jié)果是
A.6,5B.5,6
C.20,25D.3,5
79.以下對(duì)C語言函數(shù)的有關(guān)描述中,正確的是()。
A.C函數(shù)可以遞歸調(diào)用也可以嵌套調(diào)用
B.在C中,調(diào)用函數(shù)時(shí),只能把實(shí)參值傳給形參,形參值不能返回給實(shí)參
C.沒有返回值的函數(shù)不能被使用.
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:計(jì)算并輸出下列級(jí)數(shù)的前N項(xiàng)之和SN,直到SN+1大于q為止。q的值通過形參傳人。SN=2/1+3/2+4/3+(N+1)/N例如,若q的值為57,則函數(shù)值為59.593612。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫一個(gè)函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個(gè)數(shù)。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個(gè)數(shù)
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.B
2.B
3.C程序定義一個(gè)二維字符數(shù)組a,使用5個(gè)字符串對(duì)其初始化。另外定義字符指針數(shù)組P。for循環(huán)中,每次將數(shù)組a當(dāng)前下標(biāo)為i的字符串首地址賦給P[i],再求得P[i]的長度賦給len,第1個(gè)printf輸出p[i]字符串的首字母,第2個(gè)printf輸出p[i]字符串下標(biāo)從len/2開始的子字符串。當(dāng)下標(biāo)i=0時(shí)輸出efg;當(dāng)下標(biāo)i=l時(shí)輸出acd;當(dāng)下標(biāo)i=2時(shí)輸出mopq;當(dāng)下標(biāo)i=3時(shí)輸出hjkl;當(dāng)下標(biāo)i=4時(shí)輸出rvwxyz。所以程序輸出:efgacdmopqhjklrvwxyz。本題答案為C選項(xiàng)。
4.C在計(jì)算(float)(a4-b)/2時(shí),由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類型從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級(jí)別由低到高的排序表示為:char→int→unsigned→log→float→double。
5.DC語言中,常量有整型常量、實(shí)型常量、字符常量和字符串常量等。整型常量和實(shí)型常量又稱為數(shù)值型常量。其中整型常量只能用數(shù)字表示,不帶小數(shù)點(diǎn)。實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,所以選項(xiàng)A錯(cuò)誤,選項(xiàng)D正確;字符型常量是用單引號(hào)標(biāo)注的單個(gè)字符,字符串常量是用雙引號(hào)標(biāo)注的若干個(gè)字符,選項(xiàng)B、C錯(cuò)誤。故本題答案為D選項(xiàng)。
6.C\n面向?qū)ο蟮脑O(shè)計(jì)方法的基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。它雖強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,但是它鼓勵(lì)開發(fā)者在軟件開發(fā)的過程中從應(yīng)用領(lǐng)域的概念角度去思考。
\n
7.C此題是考查fprintf和fscanf,其中fprintf是向文件輸出,文件為da2.dat文件,fscanf是向文件輸入,所以根據(jù)程序循環(huán)寫入和寫出.可知答案為C。
8.C
9.B本題考查靜態(tài)變量,C語言中靜態(tài)變量的生存期是從程序的開始到結(jié)束。本題中靜態(tài)變量x,隨著每次進(jìn)入循環(huán)不斷增長5次,返回的值分別為2、3、4、5、6。所以S=1+2+3+4+5+6=21,選B。
10.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯(cuò)誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號(hào);選項(xiàng)D中,'\n'表示的是換行。
11.A
\n本題考查函數(shù)的調(diào)用,從主函數(shù)傳遞到調(diào)用函數(shù)中,*a的值為0,因此當(dāng)執(zhí)行完調(diào)用函數(shù)后,b[0]的值為6。
\n
12.AA.【解析】數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級(jí)模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。使系統(tǒng)具有較高的通道能力和提高存儲(chǔ)空間的利用率是操作系統(tǒng)的職能,而不是數(shù)據(jù)庫管理系統(tǒng)的職能。在數(shù)據(jù)庫系統(tǒng)中沒有“數(shù)據(jù)和程序一致性”這一概念。
13.A解析:C++語言規(guī)定:取余運(yùn)算符的運(yùn)算對(duì)象必須是整型,復(fù)合運(yùn)算符“%=”中包含%運(yùn)算,它的運(yùn)算對(duì)象也必須是整型。
14.A解析:C語言的字符常量是用單引號(hào)(即撇號(hào))括起來的一個(gè)字符。除此之外,在C語言中還允許用以一個(gè)“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd”表示1到3位8進(jìn)制數(shù)所代表的字符;形式“\\xhh”表示1到2位16進(jìn)制數(shù)所代表的字符。在本題中‘\\x13’表示回車符,是一個(gè)字符常量;‘\\081’用\u30008進(jìn)制數(shù)所代表的字符,但形式不正確,因?yàn)?進(jìn)制數(shù)所表示的字符中不會(huì)出現(xiàn)數(shù)字“8”;‘65’不是一個(gè)字符,而是一個(gè)+進(jìn)制數(shù)字;“\\n”是用雙引號(hào)括起來的一個(gè)字符,表示一個(gè)字符串,而不是字符常量。
15.D
16.D解析:本題中直接使用指針變量k,但在使用時(shí)要注意對(duì)k的指針運(yùn)算。此外,一開始應(yīng)知道*k的值為數(shù)組中的某一下標(biāo)值,即*k=0,本函數(shù)的功能是找出數(shù)組中的最大元素的位置及最大元素的值。
17.B本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時(shí)的結(jié)束標(biāo)志為回車或者空格。因此選項(xiàng)B)不能,選項(xiàng)C)和選項(xiàng)D)中按字符逐個(gè)讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。
18.D本題考查簡單的for循環(huán),func(3)由于i是從0開始,所以會(huì)輸出四個(gè)“*”和一個(gè)“#”,然后打印四個(gè)“?”func(4),會(huì)輸出五個(gè)“*”和一個(gè)“#”,所以答案選擇D。
19.C
20.B
21.rewind函數(shù)rewind函數(shù)解析:rewind函數(shù)的功能是使文件的位置指針回到文件的開頭。
22.JD
23.1B1B解析:從鍵盤輸入后,有a=B,b=33。a=a-'A'+'0'='B'-'A'+'0'='1',b=b*2=66,在輸出時(shí)均需要把a(bǔ),b轉(zhuǎn)化為字符型,因此輸出為1B。
24.3232解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。由此,26-1=32.所以答案為32。
25.246
26.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個(gè)for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。
27.*t*t解析:函數(shù)中首先讓n=strlen(s),所以while循環(huán)的循環(huán)條件表達(dá)式中*(s+n)指向字符串s的結(jié)束標(biāo)志'\\0'處,而該處應(yīng)該等于字符串t的第1個(gè)字符,另外循環(huán)體中讓s和t指向下一個(gè)字符,即s+n和t同時(shí)被移動(dòng)到下一個(gè)位置,所以該處應(yīng)該填*t,即t所指內(nèi)容。當(dāng)t指向字符串結(jié)束標(biāo)志'\\0'的時(shí)候,整個(gè)循環(huán)條件表達(dá)式的值也為0(“假”)了,循環(huán)結(jié)束。正好滿足將t所指字符串復(fù)制到s所指的字符串的尾部。
28.(double*)(double*)解析:本題考查強(qiáng)制類型轉(zhuǎn)換。函數(shù)malloc的默認(rèn)返回是void*,若要使指針指向double類型,必須進(jìn)行類型轉(zhuǎn)換,類型轉(zhuǎn)換格式為:(數(shù)據(jù)類型*)。
29.99解析:p是一個(gè)指針變量,指向數(shù)組a的元素a[3],所以b=p[5]=a[5+3]=a[8]=9。
30.b[i][N-1];s[0][i]實(shí)現(xiàn)把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b[i][0]=a[N-1][i]門實(shí)現(xiàn)將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組中的第0列。\r\n\r\n
31.abcdelkjihgfabcdelkjihgf解析:本題先給字符型數(shù)組s的12個(gè)元素賦值a到1共12個(gè)字母,函數(shù)sub(char*a,intt1,intt2)的功能是將數(shù)組a的從第t1+1個(gè)元素到t2+1個(gè)元素進(jìn)行逆置,在主函數(shù)中調(diào)用sub(s,5,SIZE-1)函數(shù),是將數(shù)組s的第6個(gè)元素到第12個(gè)元素進(jìn)行逆置,其他元素位置不變。
32.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函數(shù)fun(x,n)的作用是求xn,因此a4應(yīng)該調(diào)用函數(shù)fun(a,4),b4應(yīng)該調(diào)用函數(shù)fun(b,4),(a+b)3應(yīng)該調(diào)用函數(shù)fun(a+b,3),所以題目中的數(shù)學(xué)表達(dá)式,寫成C程序中的語句為m=fun(a,4)+fun(b,4)-fun(a+b,3)。
33.1030010300解析:本題的scanf()函數(shù)要求用戶輸入三個(gè)十進(jìn)制整數(shù),但只接受第一和第三個(gè)到函數(shù)的第二和第三個(gè)參數(shù)所指的內(nèi)存地址中。所以本題的輸出為:10300。
34.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。
35.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為\'a\',執(zhí)行一次循環(huán)后變?yōu)閈'c\',之后再變成\'e\',當(dāng)其變?yōu)閈'g\'時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式'i-\'a\'+\ue008\'A\'\ue009'即表示輸出i對(duì)應(yīng)的大寫字母,結(jié)果為ACE。
36.!knahT!knahT解析:此程序是一道次序顛倒題,即輸入'Thank!',則輸出'!knahT'。
37.66解析:++的優(yōu)先級(jí)高于*,先作自加運(yùn)算,b=++a*++a=2.0*3.0=6.0。b按實(shí)型輸出6.000000。
38.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接將數(shù)組元素a[4]的地址(即&a[4])賦給指針變量p,也可以用數(shù)組名加偏移量的形式(即a+4)表示數(shù)組元素a[4]的地址,并賦給指針變量p。
39.s[i]>='0'&&s[i]<='9'或isdigit(s[i])s[i]>='0'&&s[i]<='9'或isdigit(s[i])解析:根據(jù)題意和程序可知要填空的內(nèi)容是:將字符申s中的數(shù)字字符放入d數(shù)組的條件。
40.33解析:本題考查的是C語言逗號(hào)表達(dá)式的相關(guān)知識(shí)。程序在計(jì)算逗號(hào)表達(dá)式時(shí),從左到右計(jì)算由逗號(hào)分隔各表達(dá)式的值,整個(gè)逗號(hào)表達(dá)式的值等于其中最后一個(gè)表達(dá)式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計(jì)算為3。
41.D軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設(shè)計(jì)語言描述的、適合計(jì)算機(jī)執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu);文檔是與程序開發(fā)、維護(hù)和使用有關(guān)的圖文資料。因此本題的正確答案是D。
42.D
43.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點(diǎn)。
44.D解析:“auto”類定義的自動(dòng)變:鞋實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量,作用域是在所說明的函數(shù)中;“register”說明只能用于說明函數(shù)中的變量和參數(shù)中的形參,因此不允許將外部變量或靜態(tài)變量說明為register;“extern”是定義在所有函數(shù)之外的全局變量,它可以被所有的函數(shù)訪問,在所有函數(shù)體的內(nèi)部是有效的,所以函數(shù)之間可以通過外部變量直接傳遞數(shù)據(jù);“static”為允許本源文件中所有函數(shù)使用的全局變量。
45.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個(gè)字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時(shí),空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時(shí),讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個(gè)換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個(gè)字符,并把它作為函數(shù)值返回。
46.C解析:本題的考查點(diǎn)是結(jié)構(gòu)體類型變量的定義。在選項(xiàng)C中,aa是—個(gè)結(jié)構(gòu)體變量,而不是結(jié)構(gòu)體名,所以structaatd1;是非法的。
47.A解析:C語言規(guī)定,賦值號(hào)的右邊可以是一個(gè)賦值表達(dá)式.因此選項(xiàng)C)、選項(xiàng)D)正確:在選項(xiàng)B)中,a++是一個(gè)自加1的表達(dá)式,a被重新賦值,因此它是一個(gè)合法的賦值表達(dá)式:選項(xiàng)A)中,a+d是一個(gè)算術(shù)表達(dá)式,雖然最后有一個(gè)分號(hào),但這個(gè)表達(dá)式中沒有賦值操作,因此它不是一條賦值語句。
48.B解析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
49.D解析:函數(shù)scanf的地址列表應(yīng)由變量的地址組成。選項(xiàng)A中雖然&p也為地址,但它是指針變量p的地址,該地址的存儲(chǔ)單元中只能存放地址值,不能存放整型數(shù)據(jù)。選項(xiàng)B中*p相當(dāng)于變量n,所以不能正確讀入數(shù)據(jù);選項(xiàng)C不正確,因?yàn)閚為變量名;選項(xiàng)D中p為指針變量,并且值為變量n的地址,所以選項(xiàng)D能夠正確讀入數(shù)據(jù)。D為所選。
50.C解析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第—個(gè)字符必須是字母或下劃線。大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符,用戶在定義標(biāo)識(shí)符時(shí)應(yīng)做到“見名知意”,且不允許使用關(guān)鍵字作標(biāo)識(shí)符。
51.C(33)C)解析:題中變量w的定義為double型,函數(shù)fun2()的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算,整型數(shù)據(jù)被轉(zhuǎn)換為實(shí)型數(shù)據(jù)。
52.B解析:結(jié)構(gòu)化程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)組成。
53.D解析:一個(gè)C語言的源程序(后綴名為.c)在經(jīng)過編譯器編譯后,先生成一個(gè)匯編語言程序,然后由編譯程序再將匯編語言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴名為.obj),目標(biāo)程序不可以直接運(yùn)行,它要和庫函數(shù)或其它目標(biāo)程序連接成可執(zhí)行文件(后綴名為.exe)后方可運(yùn)行。故本題答案為D)。
54.B解析:所謂中序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹;并且在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。
55.D解析:線性表可以為空表,排除選項(xiàng)B。第一個(gè)元素沒有直接前件,最后一個(gè)元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。
56.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。
57.CC)【解析】根據(jù)二叉樹的性質(zhì)3:對(duì)任何一棵=叉樹,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多…+個(gè)。
58.C解析:本題考查邏輯與(&&)和邏輯或(‖)運(yùn)算符的使用。x>=1和x<=10是邏輯與的關(guān)系,因此C語言表達(dá)式應(yīng)寫成“(x>=1)&&(x<=10)”,x>=100和x<=110也是邏輯與的關(guān)系,因此C語言表達(dá)式應(yīng)寫成“(x>=100)&&(x<=110)”;[1,10]和[100,110]是邏輯或的關(guān)系,因此只要將前兩個(gè)表達(dá)式用邏輯或運(yùn)算符連接起來即可,所以最后的表達(dá)式:(x>=1)&&(X<=10)‖(x>=100)&&(x<=110)。
59.D解析:快速排序的基本思想是,通過一趟排序?qū)⑴判蛴涗浄指畛瑟?dú)立的兩部
分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字小,再分別對(duì)這兩部分記錄繼
續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序;插入排序的基本操作是指將無序序列中的各元素依
次插入到已經(jīng)有序的線性表中,從而得到一個(gè)新的序列;選擇排序的基本思想是:掃描整
個(gè)線性表,從中選出最小的元素,將它交換到表的最前面(這是它應(yīng)有的位置),然后對(duì)剩
下的于表采用同樣的方法,直到表空為止;歸并:排序是將兩個(gè)或兩個(gè)以上的有序表組合
成一個(gè)新的有序表。
注意:各種排序方法實(shí)現(xiàn)過程及實(shí)現(xiàn)機(jī)制。
60.B
61.Afor循環(huán)是統(tǒng)計(jì)字符串中小寫字符的個(gè)數(shù),所以輸出結(jié)果為2。
62.C
63.AC語言中實(shí)數(shù)的指數(shù)計(jì)數(shù)表示格式為字母e或者E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。所以選項(xiàng)A正確。
64.DCou血ue的作用是跳出循環(huán)體中剩余的語句而進(jìn)行下一次循環(huán)。第一次循環(huán)x的值為8,循環(huán)體中if條件成立,打印x的值8后將x減1,再執(zhí)行continue語句,跳出本次循環(huán)。第二次判斷循環(huán)條件時(shí),x的值變?yōu)?,不滿足循環(huán)體內(nèi)if條件,執(zhí)行打印一一x的操作,即打印5后跳出循環(huán)。第三次判斷循環(huán)條件時(shí)x的值為4,滿足循環(huán)體中if條件,執(zhí)行打印x一一的操作,即打印4,后將x值減一,執(zhí)行continue語句,跳出本次循環(huán)。第四次判斷循環(huán)條件時(shí)x的為2,滿足循環(huán)體中if條件,打印x一一,即打印2后將x減一,執(zhí)行continue語句,跳出本次循環(huán)。在進(jìn)行for條件表達(dá)式中第三個(gè)表達(dá)式x一一的操作后x的值為0,不滿足條件結(jié)束循環(huán)。所以打印結(jié)果為8,5,4,2,。
65.B關(guān)系T中的元組是R關(guān)系中有而S關(guān)系中沒有的元組的集合,所以進(jìn)行的是差的運(yùn)算。
66.C
67.C解析:C語言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。
68.D按照從鍵盤輸入的數(shù)據(jù)可以_判斷字符l給了變量a,字符2給了變量b,字符<CR>即回車給了變量c,字符3給了變量d。所以打印輸出的結(jié)果為D選項(xiàng)。
69.A結(jié)構(gòu)體變量可以作為函數(shù)的參數(shù)和返回值。作為函數(shù)的實(shí)參時(shí),可以實(shí)現(xiàn)函數(shù)的傳值調(diào)用。當(dāng)使用結(jié)構(gòu)體變量作為函數(shù)的形參時(shí),實(shí)參也應(yīng)該是結(jié)構(gòu)體變量名以實(shí)現(xiàn)傳值調(diào)用,實(shí)參將復(fù)制的副本傳遞給形參,在被調(diào)用函數(shù)中改變形參值對(duì)于調(diào)用函數(shù)中的實(shí)參沒有影響。因此本題選擇A)。
70.D本題考查雙重函數(shù)調(diào)用及for循環(huán)使用,fun函數(shù)中第一個(gè)for循環(huán)語句的作用是給數(shù)組a賦值。當(dāng)?shù)谝淮握{(diào)用fun函數(shù)時(shí),把實(shí)參1傳給形參,輸出a數(shù)組的元素為1,3,5;第二次調(diào)用fun函數(shù)時(shí),由于數(shù)組a為靜態(tài)局部變量,故輸出a數(shù)組的元素為一1,3,7。
71.A解析:耦合性是模塊間互相連接的緊密程度的度量,取決于各個(gè)模塊之間接口的復(fù)雜度、調(diào)用方式以及哪些信息通過接口。
[知識(shí)拓展]模塊的獨(dú)立程序是評(píng)價(jià)設(shè)計(jì)好壞的一個(gè)重要標(biāo)準(zhǔn),衡量軟件的模塊獨(dú)立性有兩個(gè)定性的度量標(biāo)準(zhǔn)。其中內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度的度最,內(nèi)聚性是從功能角度來度量模塊內(nèi)的聯(lián)系;耦合性是模塊間互相連接的緊密程度的度量,耦合性從整體的角度來度量模塊間的聯(lián)系。
72.A第一個(gè)嵌套的for循環(huán)把二維數(shù)組按列從小到大排序,最后輸出對(duì)角線上的元素,答案選擇A)。
73.A
74.A解析:由于s[2][6]表示字符串已超出了數(shù)組s的表示范圍,在C中不會(huì)劉數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時(shí),會(huì)得到一個(gè)不確定的值。
75.A
76.BA項(xiàng)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C項(xiàng)錯(cuò)誤,概要設(shè)計(jì)說明書是總體設(shè)計(jì)階段產(chǎn)生的文檔。D項(xiàng)錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫的文檔。B項(xiàng)正確,需求規(guī)格說明書是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。
77.B\n結(jié)構(gòu)化分析方法是結(jié)構(gòu)化程序設(shè)計(jì)理論在軟件需求分析階段的運(yùn)用。而結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化語言、判定樹和判定表等工具,來建立一種新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔。
\n
78.A在本題中,首先定義了一個(gè)fun函數(shù),函數(shù)中用兩個(gè)指針變量作為形參,在函數(shù)體中,定義了兩個(gè)整型變量,然后做除法運(yùn)算,并試圖將結(jié)果保存到形參中,語句“*a=c/3;”中由于變量c與3都是整型,其運(yùn)算結(jié)果也應(yīng)該為整型,運(yùn)算過程中舍去小數(shù)部分,得到計(jì)算結(jié)果為6,并保存到指針變量a指向的存儲(chǔ)單元中;語句“b=d/5;”同樣是整數(shù)運(yùn)算,其運(yùn)算結(jié)果為4,但很明顯,賦值的方法不正確,不能改變指針變量b指向單元的值。
在主函數(shù)中,定義了兩個(gè)整型變量,并分別賦初值,然后調(diào)用fun函數(shù),由于函數(shù)的形參是指針變量,采用的傳值方式是傳地址,能實(shí)現(xiàn)數(shù)據(jù)的雙向傳遞,因此,調(diào)用函數(shù)后,變量a的值變?yōu)榱?,而變量b的值不變,最后輸出的結(jié)果是6,5。
79.A選項(xiàng)B),形參值的改變不會(huì)影響實(shí)參,但形參值可以作為返回值返回給實(shí)參。選項(xiàng)c),函數(shù)可以沒有返回值,即返回值類型為void。選項(xiàng)D),函數(shù)可以定義在不同的文件中,只要調(diào)用前包含被調(diào)用函數(shù)所在的文件即可。
80.A
81.(1)錯(cuò)誤:doubleproc(doubleq)
正確:doubleproc(intq)
(2)錯(cuò)誤:sum=sum+(n+1)/n;
正確:sum=sum+(double)(n+1)/n;
(3)錯(cuò)誤:returnsum;
正確:returnt;
【解析】由主函數(shù)中函數(shù)調(diào)用的實(shí)參可知,函數(shù)proc()的形參為int型,因此,“doubleproc(doubleq)”應(yīng)改為“doubleproc(intq)”;變量sum為double型變量,因此表達(dá)式(n+1)/n要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,因此,“sum=sum+(n+1)/n;”應(yīng)改為“sum=sum+(double)(n+1)/n;”,由函數(shù)proc()可知,變量sum中存放的是SN+1項(xiàng),而變量t表示SN項(xiàng),因此,“returnsum;”應(yīng)改為“returnt;”。
82.\n\tvoidproc(intm,int*a,int*n)
\n{
\ninti,j=0;
\nfor(i=1;i<=m;i++)//進(jìn)行m次循環(huán)
\nif(i%7==0||i%11==0)//能被7或11整除的所有整數(shù)
\na[j++]=i;//符合條件的數(shù)放在數(shù)組a中
\n*n=j;//返回這些數(shù)的個(gè)數(shù)
\n}
\n【解析】本題需要先判斷1~m每一個(gè)整數(shù)能否被7或11整除,然后將符合條件的整數(shù)放在數(shù)組a中,最后將符合條件的數(shù)的個(gè)數(shù)通過形參n返回主函數(shù)。\n2022-2023年安徽省阜陽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.根據(jù)二叉樹的定義可知道二叉樹共有種不同形態(tài)的二叉樹()。
A.3B.4C.5D.7
3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.eeaabmmnhhirrstu
B.efgabcdmnopqhijkIrstuvwxyz
C.efgacdmopqhjkIrvwxyz
D.eefgaabcdmmnopqhhijkIrrstuvwxyz
4.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
5.以下選項(xiàng)中合法的C語言常量是()。
A.2.0KbB.”C++’C.”\2.0D.1.01
6.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實(shí)世界中不同事物之間的聯(lián)系
B.強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而不強(qiáng)調(diào)概念
C.使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題
D.不強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的算法而強(qiáng)調(diào)概念
7.有以下程序:#include<stdiO.h>main(){FILE*fp;intk,n,i,a[6]={1,2,3,4,5,6};fp=fopen("d2.dat","w");for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);fclose(fp);fp(i=0;i<3;i++)fscanf(fp,"%d%d",&k,&n);fclose(fp);printf("%d\n,%d\n,k,n);}程序運(yùn)行后的輸出結(jié)果是()。A.1,2B.3,4C.5,6D.123,456
8.在JavaScript語言中,要定義局部變量則可以()。
A.由關(guān)鍵字private在函數(shù)內(nèi)定義
B.由關(guān)鍵字private在函數(shù)外定義
C.由var在函數(shù)內(nèi)定義
D.由關(guān)鍵字var在函數(shù)外定義
9.有以下程序:#include<stdio.h>intfun{staticintx=1;x+=1;returnX;}main{inti,S=1;for(i=1;i<=S;i++)s+=fun;printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A.11B.21C.6D.120
10.下列選項(xiàng)中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
11.
下列程序執(zhí)行后的輸出結(jié)果是()。
voidfunc(int*a,intb[])
{b[0]=*a+b;}main
{inta,b[5];
a=0.b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
A.6B.7C.8D.9
12.在三級(jí)模式之間引入兩層映像,其主要功能之一是()。
A.使數(shù)據(jù)與程序具有較高的獨(dú)立性B.使系統(tǒng)具有較高的通道能力C.保持?jǐn)?shù)據(jù)與程序的一致性D.提高存儲(chǔ)空間的利用率
13.C語言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是()。
A.%=B./C.=D.<=
14.以下合法的字符型常量是A.B.C.D.
15.
16.下列程序是用來判斷數(shù)組中特定元素的位置所在的。#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,451,777},k;fun
A.7,431B.6C.980D.6,980
17.
18.有以下程序:#include<stdio.h>voidfunc(intn){inti;for(i=0;i<=n;i++)printf("*"):printf("#");}main(){func(3);printf("????");func(4);printf("n\");程序運(yùn)行后的輸出結(jié)果()。A.****#????***#
B.***#????****#
C.**#????****#
D.****#????*****#
19.已知一個(gè)長度為32的有序表,若采用二分查找一個(gè)不存在的元素,則比較次數(shù)最多是()
A.4B.5C.6D.7
20.若一組記錄的排序碼為(7,9,3,5,1,2,10),則利用堆排序的方法建立的初始堆為()
A.10,7,9,3,5,1,2
B.10,9,7,5,1,2,3
C.10,9,7,5,3,2,1
D.10,9,7,3,2,1,5
二、2.填空題(20題)21.在對(duì)文件進(jìn)行操作的過程中,若要是文件位置的指針回到文件的開頭,應(yīng)使用的函數(shù)是【】。
22.以下程序的輸出結(jié)果是()。main(){char*p[]={"ABC","DEF","GHI","JKL"};inti;for(i=3;i>=0;i--,i--)printf("%c",*p[i]);}
23.已知字符A的ASCII代碼值為65,以下程序運(yùn)行時(shí)若從鍵盤輸入:B33<回車>,則輸出結(jié)果是【】。
#include
main()
{chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);
}
24.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個(gè)。
25.以下程序的輸出結(jié)果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
26.以下程序運(yùn)行后輸入3,abcde<回車>,則輸出結(jié)果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
27.以下函數(shù)sstrcat()的功能是實(shí)現(xiàn)字符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:s所指字符串為abed,t所指字符串為efgh,函數(shù)調(diào)用后s所指字符串為abodefgh。請(qǐng)?zhí)羁铡?/p>
#include<string.h>
voidsstrcat(char*s,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
}
28.下面的語句要使指針p指向一個(gè)double類型的動(dòng)態(tài)存儲(chǔ)單元,請(qǐng)?zhí)羁铡?/p>
p=【】malloc(sizeof(double));
29.有以下程序段:
inta[l0]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;
b=p[5];
b中的值是【】。
30.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第0列中,把a(bǔ)所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中其他數(shù)據(jù)不變。
#defineN4
voidrotade(inta[][N],intb[][N])
{inti,j;
for(i=0;i<N;i++)
{b[i][N-1]=[9];[10]:a[N-1][i];}}
31.下面程序的運(yùn)行結(jié)果是()。
#include<stdio.h>
#defineSlZE12
main()
{chars[SIZE];inti;
for(i=0;i<SIZE;i++)s[i]='A'+i+32;
sub(s,5,SIZE-1);
for(i=0;i<SIZE;i++)printf("%c",s[i]);
printf("\n");}
sub(char*a,intt1,intt2)
{charch;
while(t1<t2)
{ch=*(a+t1);
*(a+t1)=*(a+t2);
*(a+t2)=ch;
t1++;t2--;
}
}
32.函數(shù)fun的功能是計(jì)算xn。
doublefun(doublex,intn)
{inti;doubley=1;
for(i=1;i<=n;i++)y=y*x;
returny;
}
主函數(shù)中已正確定義m、a、b變量并賦值,并調(diào)用fun函數(shù)計(jì)算:m=a4+b4-(a+b)3。實(shí)現(xiàn)這一計(jì)算的函數(shù)調(diào)用語句為【】。
33.以下程序運(yùn)行時(shí)若從鍵盤輸入:102030<回車>。輸出結(jié)果是【】。
#include<stdio.h>
main()
{
inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
34.若a是int型變量,則表達(dá)式(a=2*3,a*2),a+6的值為______。
35.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);
printf("\n");
}
36.現(xiàn)有兩個(gè)C程序文件T18.c和myfun.c同在TC系統(tǒng)目錄(文件夾)下,其中T18.c文件如下:
#include<stdio.h>
#include"myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
voidfun()
{chars[80],c;intn=0;
while((c=getchar())!=′\n′)s[n++]=c;
n--;
while(n>=0)printf("%c",s[n--]);
}
當(dāng)編譯連接通過后,運(yùn)行程序T18時(shí),輸入Thank!,則輸出結(jié)果是【】。
37.執(zhí)行下列程序的輸出結(jié)果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
38.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
39.以下程序的功能是將字符串s中的數(shù)字字符放入d數(shù)組中,最后輸出d中的字符串。
例如,輸入字符串:abc123edf456gh,執(zhí)行程序后輸出:123456。請(qǐng)?zhí)羁铡?/p>
#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);
}
40.設(shè)變量已正確定義為整型,則表達(dá)式n=i=2,++i,i++的值為【】。
三、1.選擇題(20題)41.軟件是指()。A.程序B.程序和文檔C.算法加數(shù)據(jù)結(jié)構(gòu)D.程序、數(shù)據(jù)與相關(guān)文檔的完整集合
42.下列程序的輸出結(jié)果是______。main(){inta=12,b=12;printf("%d%d\n",--a,++b);
A.1010B.1212C.1110D.1113
43.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個(gè)DBF文件B.數(shù)據(jù)庫是一個(gè)關(guān)系C.數(shù)據(jù)庫是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
44.在一介C源程序文件中,要定義一個(gè)只允許本源文件中所有函數(shù)使用的全局變量,則該變量需要使削的存儲(chǔ)類別是()。
A.autoB.registerC.externD.static
45.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
46.以下對(duì)結(jié)構(gòu)體類型變量的定義中,不正確的是_______。
A.typedefstructaa{intn;floatm;}aa;aatd1;
B.#defineaastructaaaa{intn;floatm;}td1;
C.struct{intn;floatm;}aa;structaatd1;
D.struct{intn;floatm;}td1;
47.若a、b、c、d都是int型變量且都已經(jīng)正確賦初值,則下列不正確的賦值語句是()。
A.a+d;B.a++;C.a=b=c=d=100;D.a=(b=3)+(d=5);
48.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流圖(DFD)作為描述工具的軟件開發(fā)階段是()。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
49.若說明int*p,n;則通過語句scanf能夠正確讀入數(shù)據(jù)的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p);
C.scanf("%d",n);
D.p=&n;scanf("%d",p);
50.以下不合法的用戶標(biāo)識(shí)符是______。A.j2KEYB.DoubleC.4dD._8_
51.有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);……}
程序執(zhí)行后變量w中的值是A.5.21B.5C.5.0D.0.0
52.下列選項(xiàng)中不是結(jié)構(gòu)化程序基本結(jié)構(gòu)的是
A.順序結(jié)構(gòu)B.跳轉(zhuǎn)分支結(jié)構(gòu)C.選擇結(jié)構(gòu)D.循環(huán)結(jié)構(gòu)
53.以下敘述中錯(cuò)誤的是A.計(jì)算機(jī)不能直接執(zhí)行用C語言編寫的源程序
B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
D.后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
54.設(shè)有下列二叉樹:
對(duì)此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
55.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個(gè)元素都有一個(gè)直接前件和直接后件
B.線性表中至少要有一個(gè)元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個(gè)元素和最后一個(gè)元素外,其余每個(gè)元素都有一個(gè)且只有一個(gè)直接前件和直接后件
56.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
57.某二叉樹中度為2的結(jié)點(diǎn)有10個(gè),則該二叉樹中有()個(gè)葉子結(jié)點(diǎn)。
A.9B.10C.11D.12
58.能正確表“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達(dá)式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
59.在下列幾種排序方法中,要求內(nèi)存量最大的是______。
A.插入排序B.選擇排序C.快速排序D.歸并排序
60.以下定義語句中正確的是()。
A.inta=b=0;
B.charA=65+1,b='b';
C.floata=1,*b=&a,*c=&b;
D.doublea=0.0;b=1.1;
四、選擇題(20題)61.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.2B.0C.3D.5
62.
63.以下選項(xiàng)中可用做C程序合法實(shí)數(shù)的是()。
A..leOB.3.0e0.2C.E9D.9.12E
64.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.7,4.2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,
65.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.差C.交D.并
66.在HTML頁面中哪些部分能夠插入JavaScript?
A.<body>部分
B.<head>部分
C.<body>部分和<head>部分均可
D.<title>部分
67.當(dāng)用戶要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
68.有以下程序:
當(dāng)執(zhí)行程序時(shí),按下列方式輸入數(shù)據(jù)(從第l列開始,<;CR>;代表回車,注意:回車也是一個(gè)字符]12<;CR>;34<;CR>;則輸出結(jié)果是()。
A.12B.123C.1234D.12343
69.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.1,2B.2,4C.1,4D.2,3
70.下面程序輸出的是()。
main
{intt=l;fun(fun(t));}
fun(inth)
{staticinta[3]={1.2.3};
intk;
for(k=0;k<3;k++)a[k]+=a[k]-h;
for(k=0;k<3;k++)printf("%d",a[k]);
printf("\n");
return(a[h]);}A.A.1,2,3,1,5,9,B.1,3,5,1,3,j,
C.1,3,5,0,4,8,
D.1,3。5,-1,3,7,
71.兩個(gè)或兩個(gè)以上模塊之間聯(lián)系的緊密程度稱為()。
A.耦合性B.內(nèi)聚性C.復(fù)雜性D.數(shù)據(jù)傳輸特性
72.有以下程序
73.
74.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其輸出為______。
A.不確定B.編
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年重型機(jī)械焊接安裝服務(wù)協(xié)議3篇
- 2025年度二手房交易首付分期及風(fēng)險(xiǎn)控制協(xié)議4篇
- 2025年度防火門檢測(cè)維修服務(wù)合同4篇
- 2025版協(xié)議離婚實(shí)操教程與全程輔導(dǎo)合同3篇
- 2025年個(gè)人房產(chǎn)測(cè)繪與房地產(chǎn)市場(chǎng)調(diào)研合同4篇
- 2025版臨時(shí)演出場(chǎng)地租賃協(xié)議書3篇
- 2025年度綠色環(huán)保項(xiàng)目臨時(shí)工勞動(dòng)合同范本8篇
- 個(gè)人家政服務(wù)合同2024年度專用3篇
- 2025年度智慧城市基礎(chǔ)設(shè)施場(chǎng)外工程承包合同4篇
- 2025年度物業(yè)設(shè)施設(shè)備智能化升級(jí)合同3篇
- 2025年生產(chǎn)主管年度工作計(jì)劃
- 2024-2025學(xué)年山東省聊城市高一上學(xué)期期末數(shù)學(xué)教學(xué)質(zhì)量檢測(cè)試題(附解析)
- 西方史學(xué)史課件3教學(xué)
- 2024年中國醫(yī)藥研發(fā)藍(lán)皮書
- 廣東省佛山市 2023-2024學(xué)年五年級(jí)(上)期末數(shù)學(xué)試卷
- 臺(tái)兒莊介紹課件
- 人工智能算法與實(shí)踐-第16章 LSTM神經(jīng)網(wǎng)絡(luò)
- 17個(gè)崗位安全操作規(guī)程手冊(cè)
- 2025年山東省濟(jì)南市第一中學(xué)高三下學(xué)期期末統(tǒng)一考試物理試題含解析
- 中學(xué)安全辦2024-2025學(xué)年工作計(jì)劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運(yùn)維、重保服務(wù))
評(píng)論
0/150
提交評(píng)論