




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年甘肅省嘉峪關市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.帶有頭節點的單向鏈表head,其3個數據節點A、B、C的連接關系如下圖所示:節點類型的定義為structlink{doubledt;structlink*next;};若指針P指向A節點,在不改變P指向的前提下,以下選項中不能訪問C節點數據成員dt的表達式是()。A.*(*p).next->next->dt
B.p->next->next->dt
C.(*(*(*p).next).next).dt
D.(*(p->next->next)).dt
2.由權值分別為3,8,6,2,5的葉子結點生成一棵哈夫曼樹,它的帶權路徑長度為________。
A.24B.48C.72D.53
3.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.將磁盤文件的內容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
4.有以下程序:#include<stdio.h>voidf1(char*a,charb){charc;c=*a;*a=b;b=c;}voidf2(chara,charb){charc;c=a;a=b;b=c;}voidf3(char*a,char*b){charc;c=*a;*a=*b;*b=c;}main(){chart1,t2;t1=‘A’;t2=‘B’;f3(&t1,&t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f2(t1,t2);putchar(t1);putchar(t2);t1=‘A’;t2=‘B’;f1(&t1,t2);putchar(t1);putchar(t2);printf(“\n”);}程序運行后的輸出結果是()。
A.ABBABBB.BAABBBC.BABABAD.BABAAB
5.若有以下定義和語句
chars1[10]="abcd!",*s2="\n123\\";
printf("%d%d\n",strlen(s1),strlen(s2));
則輸出結果是A.A.55B.105C.107D.58
6.有以下程序段:intx=3;do{printf("%d",x-=2);)while(!(--x));其輸出結果是()。A.1B.30C.1-2D.死循環
7.下述關于數據庫系統的敘述中,正確的是()。
A.數據庫系統減少了數據冗余
B.數據庫系統避免了一切冗余
C.數據庫系統中數據的一致性是指數據類型一致
D.數據庫系統比文件系統能管理更多的數據
8.數據的存儲結構是指()。
A.存儲在外存中的數據B.數據所占的存儲空間量C.數據在計算機中的順序存儲方式D.數據的邏輯結構在計算機中的表示
9.廣義表((a))的表尾是()。
A.aB.(a)C.((a))D.()
10.C語言中不合法的字符串常量是
A.\121B.'Y'C.\n\nD.ABCD\x6d
11.
12.設有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項中,表達式的值為6的是()。
A.*(k+2)B.k+2C.*k+2D.*k+=2
13.相對于數據庫系統,文件系統的主要缺陷有數據關聯差、數據不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
14.以下選項中的表達式調用庫函數依次求-4.5的絕對值、-4.0的平方根值、30°角的正弦值和2的3次方值。正確的調用是()
A.abs(-4.5)B.sqrt(-4.0)C.sin(3.1416/6.0)D.paw(2.0,3.0)
15.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運行后的輸出結果是()。A.AB.aC.HD.h
16.
17.
18.對于移動平均算法,是計算某變量之前n個數值的算術平均,正確的說法是()
A.空間復雜度是O(1)B.空間復雜度是O(n)C.空間復雜度是O(logn)D.空間復雜度是O(nlogn)
19.語句“printf("akbre"\'hi\'y\\\bou\n")”;的輸出結果是()。
A.akbre\'hi\'y'\\\bou
B.a\bre\'hi\\y\bou
C.re'hi'you
D.abre'hi'y\bou
20.下列敘述中不正確的是()。
A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數中,最好使用全局變量
C.外部變量可以在函數之間傳遞數據
D.自動變量實質上是一個函數內部的局部變量
二、2.填空題(20題)21.以下程序的輸出結果是【】。
main()
{charc=′z′;
printf("%c",c-25);}
22.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。
23.在宏定義#definePI3.14159中,用宏名PI代替一個______。
24.以下程序通過函數SunFun()調用F(x),x的值從0到10,這里F(x)=x2+1,由F函數實現,請填空。
#include<stdio.h>
intSunFun(int);
intF(int);
main()
{pfintf("Thesum=%d\n",SunFun(10));}
SunFun(intn)
{intx,s=0;
for(x=0;x<=n;x++)s+=F(【】);
returns;
F(intx)
{return(【】);}
25.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。
26.數據庫系統中實現各種數據管理功能的核心軟件是______。
27.下列循環的循環次數是______。
ihtk=2;
while(k=0)
printf("%d",k);
k--;
printf("\n");
28.下列程序運行后的輸出的結果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
29.以下程序從終端讀入數據到數組中,統計其中正數的個數,并計算它們之和,請填空。
#include<stdio,h>
main()
inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=【】;
}
prinff("sum=%d,count=%d\n",sum,count);
}
30.下列程序的運行結果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
31.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
32.深度為5的滿二叉樹有()個葉子節點。
33.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數據類型為______。
34.執行以下程序時,若輸入end<回車>,則輸出結果是【】。
main()
{charch[10]="Begin";
gets(&ch[1]);puts(ch);
}
35.函數rewind的作用是
36.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{chara[]="Language",b[]:"Programe";
char*pl,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))printf("%c",*(pi+k));
}
37.下述程序的輸出結果是【】。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0||x==1)
return3;
else
p=x-fun(x-2);
returnp;}
voidmain()
{printf("\n%d",fun(9));}
38.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結果為______。
39.以下程序運行后的輸出結果是【】。
main()
{
intp=30;
printf("%d\n",(p/3>0?p/10:p%3));
}
40.下列程序執行后輸出的結果是【】。
f(inta)
{staticc=0;
c=a+c++;
return(c);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
prinf("%d\n",k);
}
三、1.選擇題(20題)41.在微機系統中,對輸入輸出設備進行管理的基本程序模塊(BIOS)存放在()
A.RAM中B.ROM中C.硬盤中D.寄存器中
42.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
43.設a=12,a定義為整型變量。表達式a+=a-=a*=a的值為______。
A.12B.144C.0D.132
44.若有定義“char,*p2,*p3,*p4,ch;”,則不能正確賦值的程序語句為()
A.p1=&ch;scanf("%c",p1);
B.p2=(char*)malloc(1);scanf("%c",p2);
C.p3=getchar();
D.p4=&ch;*p4=getchar();
45.設變量已正確定義并賦值,以下正確的表達式是()。
A.x=y*5=x+z
B.int(15.8%5.
C.x=y+z+5,++y
D.x=25%5.0
46.在深度為5的滿二叉樹中,葉子結點的個數為A.32B.31C.16D.15
47.下列程序的運行結果是()。#include<stdio.h>main(){staticchara[]="Languagef",b[]="programe";char*p1,*p2;intk;p1=a;p2=b;for(k=0;k<=8;k++)if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));}
A.gaeB.angC.programD.有語法錯
48.下列敘述中正確的是()。
A.程序執行的效率與數據的存儲結構密切相關
B.程序執行的效率只取決于程序的控制結構
C.程序執行的效率只取決于所處理的數據量
D.以上三種說法都不對
49.下面程序的輸m結果是()。typedefunion{doublex[3];inty[4];charz[10];}M;Mt;main(){Printf("%d\n",sizeof(t));}
A.32B.26C.24D.4
50.下列程序的輸出結果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}
A.28B.1000C.0D.不確定
51.有以下程序int*f(znt*x,int*y){if(*x<*y)returnX;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d.%d\n",*p,*q,*r);}執行后輸出結果是
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
52.以下程序的輸出結果是______。main(){printf("%d\n",NULL);}
A.0B.-1C.1D.不確定的值(因變量無定義)
53.已有定義int(*q)(),指針q可以()。
A.指向函數的入口地址B.代表函數的返回值C.表示函數的類型D.表示函數返回值的類型
54.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數strcat(s1,s2)后,結果是()。
A.s1的內容更新為abcdefgi
B.s1的內容更新為defghi\0
C.s1的內容更新為defghiabc\0
D.s1的內容更新為abcdefghi\0
55.下列關于c語言用戶標識符的敘述中正確的是()。
A.用戶標識符中可以出現下劃線和中劃線(減號)
B.用戶標識符中不可以出現中劃線,但可以出現下劃線
C.用戶標識符中可以出現下劃線,但不可以放在用戶標識符的開頭
D.用戶標識符中可以出現下劃線和數字,它們都可以放在用戶標識符的開頭
56.能將高級語言程序轉換成目標語言程序的是______。
A.調試程序B.解釋程序C.編譯程序D.編輯程序
57.有以下程序:voidsum(int*A){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執行后的輸出結果是
A.4B.3C.2D.1
58.定義int*swap()指的是______。
A.—個返回整型值的函數swap()
B.—個返回指向整型值指針的函數swap()
C.—個指向函數swap()的指針,函數返回一個整型值
D.以上說法均錯
59.以下程序段的輸出結果是______。intx=5;do{ptintf("%2d\n",x--);}while(!x);
A.5B.無任何輸出C.4D.陷入死循環
60.以下程序中,while循環的循環次數是main(){inti=0;while(i<10){if(i<1)continue;if(i==5)break;i++;}}
A.1B.10C.6D.死循環,不能確定次數
四、選擇題(20題)61.
定義下列結構體(聯合)數組:
structst
{charname[15];
intage;
}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);
執行語句printf("%d,%C",a[2].age,*(a[3].name+2))的輸出結果為()。
A.15,AB.16,HC.16,AD.17,H
62.
63.有三個關系R、S和T如下:
由關系R和S通過運算得到關系T,則所使用的運算為()。
A.笛卡爾積B.交C.并D.自然連接
64.與“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;
65.
66.
67.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數為()。
A.log2nB.n2C.nD.n+1
68.
69.有以下程序
#include"stdio.h"
voidfun(int*a,int*b,intc)
{c=*a+*b;}
main()
{inta[2]={6,9},c=0;
fun(a,a+1,&c);
printf("%d\n",c);
}
程序輸出的結果是
A.6B.9
C.0D.15
70.有以下程序:main(){chars[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}執行后輸出結果是()。
A.賦初值的字符串有錯B.6,7C.5,6D.6,6
71.已知大寫字母A的ASCIl碼值是65,小寫字母a的ASCIl碼值是97。以下不能將變量C中的大寫字母轉換為對應小寫字母的語句是()。
A.C=(。A’+C.%26一"a"B.c=c+32C.c=c一"A"+"a"D.c=(c一’A")%26+-a"
72.下面各選項中,均是C語言合法標識符的選項組是()。
A.
B.
C.
D.
73.以下選項中,能用作數據常量的是______。A.o115B.0118C.1.5e1.5D.115L
74.數字字符0的ASCIl值為48,若有以下程序:
程序運行后的輸出結果是()。
A.3,2B.50,2C.2,2D.2,50
75.以下選項中可用作C程序合法實數的是()。A..1eOB.3.0e0.2C.E9D.9.12E
76.有以下程序:
若運行時輸入:246<;回車>;,則輸出結果為()。
A.204B.200C.240D.246
77.有以下程序:
運行時,若輸入123450<;回車>;,則輸出結果是()。
A.66656B.6566456C.66666D.6666656
78.有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的輸出結果是()。A.A.xyyxB.yyyyC.yyxxD.yxyx
79.
80.以下敘述中正確的是()。
A.c語言規定必須用main作為主函數名,程序將從此開始執行
B.可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行
C.c語言程序將從源程序中第一個函數開始執行、
D.main的各種大小寫拼寫形式都可以作為主函數名,如MAIN,Main等
五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數組中,過長的剩余字符接在str所指數組的尾部。例如,當str1所指字符串中的內容為ABCDEFG,str2所指字符串中的內容為1234時,str所指數組中的內容應該為A483C2D1EFG;而當str1所指字符串中的內容為1234,str2所指字符串中的內容為ABCEDFG時,str所指數組中的內容應該為1G2F31:4DCBA。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio。h>
#include<string.h>
voidproc(char*strl,char*str2,char*str){
inti,j;charch;
i=0;j=strleu(str2)-1;
//****found****
while(i>j)
{
ch=str2[i];str2[i]=str2[j];str2[j]=ch;
i++;j--;
}
while(*str1||*str2)
{
if(*str1){*str=*str1;str++;str1++;)
if(*str2){*str=*str2;str++;str2++;)
}
//****found****
*str=0:
}
voidmain
{
chars1[100],s2[100],t[200];
system("CLS");
printf("\nEnters1string:");
scanf("%s",sl);
printf("\nEnters2string:");
scanf("%s",s2);
proc(s1,s2,t);
printf("\nTheresultis:%s\n",t);
}
六、程序設計題(1題)82.請編寫一個函數,用來刪除字符串中的所有空格。例如,輸入abcdefgh,則輸出為abcdefgh。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.Alink結構體中的next是鏈表中下一個節點的地址。由于p當前指向節點A,因此p->next是B的地址。p->next->next是C的地址,訪問C的節點數據成員dt可以使用C的地址訪問,即p->next->next->dt,選項B正確。或者使用解引用“*”運算符:(*p)表示節點A,(*p).next表示B的地址,*((*p).next)表示節點B,(*((*p).next)).next表示C的地址,*((*((*p).next)).next)表示節點C,所以C的數據成員dt可以表示為(*((*(*p).next).next)).dt,因為“.”運算符優先級高于“*”運算符,所以也可以寫為(*(*(*p).next).next).dt,選項C正確。同理,也可以既使用指針運算符,又使用解引用運算符來訪問C的節點數據成員dt,即(*(p->next->next)).dt,選項D正確。選項A中,*p表示A節點,(*p).next表示節點B的地址,由于“->”運算符的優先級高于“*”運算符,因此先執行“->”,即表達式(*p).next->next->dt引用了C節點的數據成員dt,然后再執行解引用運算“*”,這是錯誤的。故本題答案為A選項。
2.D
3.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環執行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結束。因此程序的功能是將文件file1中的內容復制到文件file2中。
4.B函數f1(*a,b),*a為地址傳遞,b為值傳遞,將b值傳給*a,則f1(&t1,t2)調用后輸出t1、t2為BB。f2(a,b)為值傳遞,傳入的只是a、b的值,不實現交換,則f2(t1,t2)調用后輸出t1、t2為AB。f3(*a,*b)為地址傳遞,可以實現a、b值的交換,則f3(&t1,&t2)調用后輸出t1、t2為BA。因此結果為BAABBB。故本題答案為B選項。
5.A
6.C本題考查do-while循環,先執行d0輸出的x的值為1,接著執行while語句,此時--x的值為0,x也為0,而非0為1,循環成立,接著執行do輸出X值為-2,執行--x后,表達式為-2,而!(--x)為0,退出循環。
7.A解析:數據庫是一個通用化的、綜合性的數據集合,它可以為各種用戶所共享,具有最小的冗余度和較高的數據與程序的獨立性,而且能并發地為多個應用服務,同時具有安全性和完整性。即數據庫系統減少了數據冗余,但不能避免一切冗余。所以選項A正確,選項B錯誤。在數據庫管理階段中,數據是結構化的,面向系統,數據冗余度小,從而節省了數據的存儲空間,也減少了對數據的存取時間,提高了訪問效率,避免了數據的不一致性。數據的不一致性,是指對數據的存取方式,選項C錯誤。數據庫系統比文件系統能管理更多的數據,并非是數據庫系統的特點,選項D錯誤。本題正確答案是A。
8.D數據的邏輯結構是指數據元素之間的邏輯關系的數據結構。數據的存儲結構則是數據的邏輯結構在計算機中的物理實現,有時也稱作數據的物理結構。兩者的區別是數據的邏輯結構只涉及到數據之間抽象的數學關系。存儲結構則涉及到如何在計算機中通過對數據的物理存儲進行組織來表達數據元素之間的邏輯關系。比如在線性表的順序存儲中是利用物理存儲空間上的連續性來表達線性表中數據的前后件關系;在線性表的鏈式存儲中是通過指針域構成的邏輯鏈條來表達數據的前后件關系。一般的,一種數據的邏輯結構對應的物理實現,即數據的存儲結構不止一種。因此選項D正確。
9.D
10.B解析:字符串常量是由雙引號括起來的一串字符,其中的雙引號不可缺少。由此可知,選項A)、C)、D)都是含法的字符串常量,而選B)是一個字符常量。
11.D
12.A本題考查數組和指針,*k指針是指向rn數組的首地址,所以要使表達武的值為6,只需要指針指向第m[2],所以答案選擇A。-
13.D解析:文件系統所管理的數據文件基本上是分散的、相互獨立的,因此相對于數據庫系統,以此為基礎的數據處理存在3個缺點,數據冗余大、數據的不一致性、程序與數據的相互依賴(簡稱為數據依賴)。注意:文件系統和數據庫系統各自的特點,人工管理階段及數據庫系統三代的特點。
14.C
15.D多元運算符問號前面表達式為真,所以(a-A+a)賦值給a,括號里的運算是把大寫字母變成小寫字母,所以答案應為選項D。
16.D
17.B
18.A
19.C先輸出a、b表示退一格,當執行到:\b后,光標往后退,接著輸出re'hi'y\(反斜杠后又加一個反斜杠的意思是要輸出一個反斜杠),此時又執行:\b后,\就被ou覆蓋。
20.B解析:編譯時,編譯系統不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數被調用時,編譯系統根據需要要臨時分配內存,調用結束空間釋放;全局變量一經定義,編譯系統為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存不定的情況下,最好使用全局變量。
21.aa解析:'z'的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。
22.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
23.字符串字符串解析:本題考查字符替換格式:#define標識符字符串。
24.xx*x+1x\r\nx*x+1解析:本題考查函數的調用。P(x)的含義為x的平方加1,所以第一處應填x;第二處應填x*x+1。
25.33解析:本題考查的是C語言逗號表達式的相關知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
26.數據庫管理系統數據庫管理系統解析:數據庫管理系統是數據庫的管理機構,它是一種系統軟件,負責數據庫中的數據組織、數據操縱、數據維護、控制及保護和數據服務等。
27.00解析:解答本題需要注意表達式“k=0”,它是賦值表達式而不是關系表達式,不論k為何值,表達式k=0總會使k為0,所以不能進入循環。
28.HOWHOW解析:在scanf()函數中,使用空格作為分隔符,如果輸入含有空格的字符串,則不能使用scanf()函數,所以本題中輸入空格就返回了'\\0',s數組也就確定了,后面的輸入就不再讀入數組s中。
29.&a[i]a[i]&a[i]\r\na[i]解析:scanf的格式為:scanf(格式控制,地址表列),因此,第一處應該填寫地址,由于是循環輸入,所以填&a[i]。依據題意第二處應該填寫a[i],以實現sum=sum+a[i]的求和。
30.24682,4,6,8解析:子函數fun()的功能是將數組a中的元素都自加一遍,然后仍然將結果存在原數組中,其實就是將數組a的每個元素都變為原來的2倍,然后輸出。在主程序中首先通過intfun()定義了子函數fun(),然后再調用fun()。
31.可重用性繼承的優點:相似的對象可以共享程序代碼和數據結構,從而大大減少了程序中的冗余,提高軟件的可重用性。
32.1616解析:在滿二叉樹中,每一層上的節點數都達到最大值,在第k層上有2[k-1]個節點,且深度為m的滿二叉樹有2[m]-1個節點,深度為5的滿二叉樹葉子節點數為2[5-1]=16。
33.整型整型解析:上面的表達式中,通過強制類型轉換把最后參與運算的數據都轉換成了int型,所以最后得到的結果也是int類型。
34.Bend
35.A
36.gaegae解析:本題考查字符指針變量與字符數組。for循環語句共循環8次:
①當k=0時,*(Pl+0)='L',*(p2+0)='P',L!=P,沒有輸出。
②當k=1時,*(p1+1)='a',*(p2+1)='r',a!=r,沒有輸出。
③當k=2時,*(p1+2)='n',*(p2+2)='o',n!=o,沒有輸出。
④當k=3時,*(P1+3)='g',*(p2+3)='g',g==g,所以輸出g。
⑤當k=4時,*(p1+4)='u',*(P2+4)='r',u!=r,沒有輸出。
⑥當k=5時,*(p1+5)='a',*(p2+5)='a',a==a,所以輸出a。
⑦當k=6時,*(p1+6)='g',*(p2+6)='m',g!=m,沒有輸出。
⑧當k=7時,*(p1+7)='e',*(p2+7)='e',e==e,輸出e。
⑨當k=8時結束循環,輸出結果為:gae。
37.77解析:本題考查的是函數的遞歸調用。x=0或x=1是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。
38.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術運算的時候是用其相應的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數輸出是輸出其相應的字符,所以是B。
39.33解析:條件表達式的一般形式為;表達式1?表達式2:表達式3條件運算符的執行順序:先求解表達式1,若為非0(真)則求解表達式2,此時表達式2的值就作為整個條件表達式的值;若表達式1的值為0(假),則求解表達式3,表達式3的值就是整個條件表達式的值。30/3=10>0,所以執行p/10,結果為3。
40.77解析:在程序執行時,static變量僅初始化一次,下次使用時將使用上次保存的值。
41.B
42.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數與自身按位與,結果仍為此數,不發生變化。
43.C解析:表達式a+=a-=a*=a的運算方向是自右向左,即先計算a*=a,a值為a*a=144,再計算a-=a,a值為a-a=0,再計算計a+=a,故表達式和a的值都為a+a=0。
44.C
45.C解析:求余運算符'%'兩邊的運算對象必須是整型,而選項B)和D)中'%'兩邊的運算對象有浮點整數據,所以選項B)和D)是錯誤的表達式。在選項A)中賦值表達式的兩邊出現相同的變量x,也是錯誤的。選項C)是一個逗號表達式,所以正確答案為C)。
46.C2(n-1)
=2(5-1)=16
47.A解析:本題考查指針的用法,if(*(p1+k)==*(p2+k))語句的功能是判斷兩個數組中的字符是否相同,如果相同則輸出。
48.A本題考查程序效率。程序效率是指程序運行速度和程序占用的存儲空間。影響程序效率的因素是多方面的,包括程序的設計、使用的算法、數據的存儲結構等。在確定數據邏輯結構的基礎上,選擇一種合適的存儲結構,可以使得數據操作所花費的時間少,占用的存儲空間少,即提高程序的效率。因此,本題選項A的說法是正確的。
49.C解析:本題考查的是聯合所占的存儲空間。sizeof(t)=sizeof(double)*3=8*3=24。聯合體所占的存儲空間墩決于所占空間最大的成員所占的空間。
50.B解析:本題對共用體的使用進行了考查。由于共用體所有成員共同占據一段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因為s.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據一段存儲空間,所以age的值也為1000。
51.B解析:本題定義了一個返回值為指針的函數f(),此函數有兩個指針型的形參x和y)該函數的功能,是返回x和y指向的變量中值較小的那個指針變量。主函數中定義了兩個指針變量p和小并讓它們指向了變量a和b,調用函數f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和,r的值是7,8和7。所以,B選項為所選。
52.A解析:NULL表示空,常在定義指針變量時將其值賦為NULL,表示不指向任何地址。NULL在C語言的頭文件中宏定義為0。
53.A解析:本題考查的是指向函數的指針。函數指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數返回值的類型;“指針”指向函數的入口地址。
54.D解析:streat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。
55.B解析:在C語言中,合法的標識符由字母,數字和下劃線組成(故選項A不正確),并且第一個字符必須為字母或者下劃線(故選項B和選項D不正確).所以,B選項為所選.
56.C解析:用高級語言編寫的程序稱為“源程序”,而計算機只能識別和執行由O和1組成的二進指令,所以高級語言必須先用—種稱為“編譯程序”的軟件,把源程序翻譯成二進制形式的“目標程序”。
57.A解析:本題考核的知識點是數組的定義、賦初值以及函數調用的組合應用.本題中函數sum(int*A)的作用是:將形參a所指的數組中的第二個元素的值a[1]賦給第一個元素a[0]。主函數中定義一個長度為10的整型數組并賦初值,接著執行一個for循環,該循環共執行了3次.當i=2時,調用函數sum(&aa[2]),主函數中將&aa[2]作為實參傳給行參a,所以此時形參a所指的數組的第一個元素和第二個元素分別為aa[2]和aa[3],故執行完該函數后將aa[3]的值賦給aa[2],即aa[1]=aa[3]=4,當i=1時,調用函數sum(&aa[1]),主函數中將&aa[1]作為實參傳給行參a,所以此時形參a所指的數組的第一個元素和第二個元素分別為aa[1]和aa[2],故執行完該函數后將aa[2]的值賦給aa[1],即aa[1]=aa[2]=4;當i=0時;調用函數sum(&aa[0]),,主函數中將&aa[0]作為實參傳給行參a,所以此時形參a所指的數組的第一個元素和第二個元素分別為aa[0]和aa[1],故執行完該函數后將aa[1]的值賦給aa[0],即aa[0]=aa[1]=4;故最后輸出的aa[0]的值為4,所以,4個選項中選項A符合題意。
58.B解析:—個函數可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數據,即地址。本題的定義中,包括括號和*號,由于()優先級高于*。故它是—個返回整型指針的函數。
59.A解析:本題考查循環語句do-while語句的執行情況。首先五條件執行循環體,表達式x--的值為5,然后檢查條件。
60.D解析:break語句只能在循環體和switch語句體內使用,當break出現在switch語句體內時,其作用只是跳出該switch語句體。當break出現在循環體中,但不在switch語句體內時,則在執行break后,跳出本層循環體.而continue語句的作用是結束本次循環,即跳過本次循環中余下尚未執行的語句,接著再一次進行循環的條件判定。本程序中,變量i的初始值為0,判斷while后面括號內表達式的值為真,執行循環體內的if語句,判斷if后面括號內表達式的值為真,執行“continue;”語句.因continue的作用是結束本次循環,即跳過本次循環體中余下尚未執行的語句,接著再一次進行循環的條件判斷,所以i的值未發生變化,循環條件仍然為真,if語句也仍然成立,因此循環將無止境地進行下去。所以,4個選項中D為所選。
61.C
\n本題考查結構體數組。a[2].age為結構體aEZ]的age成員,即a[3].name為指向結構體a[3]的name成員的第一個元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2)是取指針所指向地址的內容。
\n
62.A
63.D解析:笛卡爾積:設關系R和S的元數分別是r和s,定義R和S的笛卡爾積是一個(r+s)元元組的集合,每一個元組的前r個分量來自R的一個元組,后s個分量來自S的一個元組。若R有k1個元組,s有k2個元組,則關系R和關系S的廣義笛卡爾積有k1×k2個元組。交:設關系R和關系S具有相同的目n,且相應的屬性取自同一個域,則關系R與關系S的交由屬于R又屬于S的所有元組組成。并:設關系R和關系S具有相同的目n(即兩個關系都有n個屬性),且相應的屬性取自同一個域,則關系R與關系S的并由屬于R或屬于S的元組組成。自然連接:是一種特殊的等值連接,它要求兩個關系中進行比較的分量必須有相同的屬性組,并且要將結果中重復的屬性去掉。
64.By=(x=)071:x<0?-1:0)中有兩個三目運算符,因此按從右到在的順序運算,可寫成y=(x>071:(x<0?-1:0)),故選擇8選項。
65.C
66.B
67.C對線性表進行順序查找,最壞的情況是待查數據在表中不存在,所以比較的次數與表中的元素個數一樣多。
68.A
69.C函數的參數通常分為兩種:數值變量和指針變量。數值變量被函數調用后,函數內的參數為該數值變量的副本。對副本的一切操作都不會影響到調用函數外原來的參數。指針變量在函數中傳遞的是對其存放地址的一份副本,該副本存放的地址與原來的指針所存的地址一致。在函數體內修改指針存放的地址對應的值與在函數體外對原參數的修改同樣有效,因為原參數也指向該地址。
題目中的程序包括主函數main和fun函數,其中fun函數為void型,不需要fun函數返回值。fun函數的形參為2個整型指針變量和1個整型變量。在main函數中調用fun函數,a為指向數組第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保密培訓教材
- 預防痢疾的班會課件
- 愛心 傳遞溫暖的主題班會課件
- 防汛抗旱知識教育
- 項目安全生產培訓課件
- 乳腺超聲分級標準解析
- 醫院保潔安全培訓
- 2025年爆破設備挖掘機械合作協議書
- 城鎮污水管網建設工程招商引資報告
- xx河流排水防澇設施建設項目投資計劃書
- 內蒙古自治區2024年1月普通高中學業水平考試生物試題(含答案解析)
- 高中地理選擇性必修二知識點
- 《工程建設標準強制性條文電力工程部分2023年版》
- HIV-1感染者的藥物依從性與治療效果
- 2024年第九屆全國中小學“學憲法、講憲法”競賽題庫及答案
- 血透患者日常注意事項
- 門診護理工作禮儀
- 2024供電營業規則學習課件
- 《電除顫培訓》課件
- 2024屆東北育才中學數學高二第二學期期末檢測試題含解析
- 加油站夏季安全用電知識培訓
評論
0/150
提交評論