對于正在備考的同學們來說,真題是非常重要的學習資料,暨南大學公布了2020年的考研真題,計劃報考暨南大學的同學們可要趕緊收藏哦,以下是小編整理的“考研真題:桂林理工大學2020年碩士研究生入學考試真題C語言程序設計”的相關(guān)內(nèi)容,點擊即可查看!
桂林理工大學2020年碩士研究生入學考試試題
考試科目代碼:877
考試科目名稱:C語言程序設計 A卷
(總分150分,三小時答完)
考生注意:1.請將答題寫在答卷紙上,寫在試卷上視為無效。
2.考試需帶 ╳╳╳ 用具
一、選擇題(每小題2分,共30分)
1.以下( ) 是錯誤的整型常量。
A. -0xabcdef B. 018 C. 0x29 D. 011
2.為了判斷兩個字符串s1和s2是否相等,應當使用( )。
A. if(s1==s2) B. if(s1=s2)
C. if(strcmp (s1,s2) == 1) D. if(strcmp(s1,s2) == 0)
3.以下scanf函數(shù)調(diào)用語句中錯誤的是 ( )。
struct student
{ char name[20];
int age;
}pup[5], *p;
p=pup;
A. scanf("%d", p->age); B. scanf("%s", pup[1].name);
C. scanf("%d", &(p->age)); D. scanf("%s", p->name);
4. 以下程序運行結(jié)果( )。
#include <stdio.h>
int main( )
{
int sum=0,item=0;
while (item<5)
{
item++;
sum+=item;
if(sum>=8)
break;
}
printf("%d\n",sum) ;
return 0;
}
A. 15 B. 10 C. 6 D. 9
5.下面程序段的運行結(jié)果是( )。
#include <stdio.h>
int main( )
{
int i=0, a[]={3,4,5,4,3};
do{
a[i]++;
}while(a[++i]<5);
for(i=0;i<5;i++)
printf("%d ",a[i]);
return 0;
}
A. 4 5 6 5 4 B. 3 4 5 4 3 C. 4 5 5 5 4 D. 4 5 5 4 3
6.以下程序的輸出結(jié)果是( )。
#include <stdio.h>
int main( )
{ int a[9]={1,2,3,4,5,4,3,2,1};
int *p,*q,i,x;
p=&a[0]; q=&a[8];
for (i=0;i<=4;i++)
if(*(p+i) == *(q-i) )
x=*(p+i)*2;
printf("%d\n",x);
return 0;
}
A. 2 B. 18 C. 10 D. 不確定
7.以下程序段的運行結(jié)果是( )。
#include <stdio.h>
int main( )
{ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;
for(i=0;i<4;i++)
p[i]=&a[i*3];
printf("%d\n",p[3][2]);
return 0;
}
A.11 B. 12 C. 8 D. 9
8.要把一個函數(shù)計算結(jié)果的兩個整型數(shù)據(jù)返回給主調(diào)函數(shù),在下面的方法中不正確的是( )。
A. 用兩個return語句 B. 形參用數(shù)組,該數(shù)組包含兩個整型數(shù)據(jù)
C. 形參用兩個整型的指針 D. 用兩個整型全局變量
9.若已定義:int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a, i=3; 則對a數(shù)組元素不正確的引用是 ( )。
A.a(chǎn)[p-a] B.p[i] C.*(&a[i]) D.a(chǎn)[p+a]
10.下列程序段的輸出結(jié)果是( )。
#include <stdio.h>
#include <string.h>
int main( )
{
char s[20]="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2, strcat(s+2,p2+1));
printf("%s\n", str);
return 0;
}
A. xyabcAB B. abcABz C. ABabcz D. xycdBCD
11.若有定義:int a=7; double x=2.5,y=4.7; 則表達式x+a%3*(int)(x+y)%2/4的值是( )。
A. 2.500000 B. 2.750000 C. 3.500000 D. 0.000000
12.對于語句 int *p[10]; ,以下說法正確的是( )。
A. p是一個指針,指向一個數(shù)組,數(shù)組的元素是整型數(shù)據(jù)
B. p是一個指針,指向一個數(shù)組,數(shù)組中有10個整型數(shù)據(jù)
C. p是一個數(shù)組,它的每一個元素是指向整型數(shù)據(jù)的指針
D. p是一個數(shù)組,它的每一個元素是指向10個整型數(shù)據(jù)的指針
13.下面程序的輸出結(jié)果是( )。
#include <stdio.h>
#include <string.h>
int main ( )
{
int i;
char *s= "abcd";
for ( i=0 ; i<strlen(s); i++)
printf ("%s\n" ,s+i );
return 0;
}
A.abcd B. abcd C. d D. d
abc bcd cd dc
ab cd bcd dcb
a d abcd dcba
14.若a,b為整型變量,語句:printf("%d",(a=3)&&(b=-3)); 的輸出結(jié)果是( )。
A. 3 B. -3 C. 1 D. 0
15.下列函數(shù)欲實現(xiàn)對兩個整型變量的值進行交換,下列說法正確的是( )。
void swap(int x, int y)
{ int t;
t=x; x=y; y=t;
}
主函數(shù)中定義變量int a, b; 調(diào)用函數(shù)的語句為 swap(&a, &b)
A. 程序有錯,調(diào)用語句應為swap(a, b); B.程序有錯,函數(shù)swap缺少return語句
C. 程序有錯,應將swap函數(shù)中的形參x,y,局部變量t定義為整型指針類型,執(zhí)行語句不變
D. 以上說法都不正確
二、填空題(每空2分,共30分)
1. 在C語言中存儲字符串 "abcdef" 至少需要( )個字節(jié)。
2. 用if語句實現(xiàn)與以下賦值語句 k=a>b?(b>c?1:0):0;一樣的功能, 對應的if語句為
( )。
3. 在C程序中有自定義函數(shù)f,函數(shù)首部為:void f(int *x),主函數(shù)中有數(shù)組定義為 int a[5],以數(shù)組a為實參,則調(diào)用該函數(shù)的語句為( )。
4. 使用malloc函數(shù),分配能夠存儲4個double數(shù)據(jù)的內(nèi)存空間,并將起始地址賦值給指針變量p,變量p已經(jīng)定義:double *p; 相應的賦值語句是( )。
5. 以下程序的輸出結(jié)果是( )。
#include <stdio.h>
#define PT 5.5
#define S(x) PT*x*x
int main( )
{ int a=1,b=2;
printf("%.1f\n" ,S(a+b));
return 0;
}
6. 如果指針fp所指向的文件未結(jié)束,函數(shù)feof(fp)的返回值為( )。
7. 若有以下定義:
struct link{
int data;
struct link *next;
}*head, *p;
并已建立如下圖所示的鏈表結(jié)構(gòu),第1個結(jié)點為10所在結(jié)點,第2個結(jié)點為30所在結(jié)點。
head …
指針P指向如下結(jié)點:
p
則能夠把p所指結(jié)點插入到鏈表中,成為鏈表第2個結(jié)點的程序段是
( )。
8.下列程序的輸出結(jié)果是( )。
#include <stdio.h>
int main( )
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
return 0; }
9. 以下函數(shù)的功能是( ) 。
int function(char *x)
{
char *p=x;
while(*p++);
return(p-x-1);
}
10. 若有定義:int a=10,b=8,c; 則執(zhí)行語句c=(a&b)>>2; 變量c的值為( )。
11. 以下程序的功能是統(tǒng)計輸入的字符串中數(shù)字字符的個數(shù)并輸出,輸入換行符時結(jié)束,請分析程序并填空。
#include <stdio.h>
int main( )
{
int n=0; char c;
while ( )
if ( )
n++;
printf("n=%d\n",n);
return 0;
}
12. 函數(shù)fun的函數(shù)首部為:int fun(int i,int j)且函數(shù)指針變量P定義如下:int(*P)(int i,int j);則使指針P指向函數(shù)fun的賦值語句是( )。
13. 若有定義結(jié)構(gòu)體及函數(shù)定義如下,函數(shù)fun所實現(xiàn)的功能是( )。
struct node{
int data;
struct node *next;
};
void fun(struct node *head)
{
struct node *p=head;
while(p)
{ if ((p->data%)%2)
printf("%d",p->data);
p=p->next;
}
}
14. 有以下語句,執(zhí)行之后變量k的值是( )。
int a[5]={2,4,6,8,10},*p, k;
p=&a[2];
k=*(--p);
三、程序閱讀題。 (每小題5分,共30分)
1. 寫出以下程序的輸出結(jié)果。
#include <stdio.h>
int main( )
{ int x, y;
for(x=30, y=0; x>=10, y<10; x--, y++)
x/=2, y+=2;
printf("x=%d,y=%d\n",x,y);
return 0;
}
2. 請寫出以下程序的運行結(jié)果。
#include<stdio.h>
int z=0;
void f(int *x, int y)
{
++*x;
y--;
z=*x+y+z;
printf("%d %d %d\n",*x,y,z);
}
int main( )
{
int x=1, y=5,z=9;
f(&x,y);
printf("%d %d %d\n",x,y,z);
return 0;
}
3. 閱讀以下程序,說明函數(shù)f實現(xiàn)的功能是什么,并寫出主函數(shù)運行后的輸出結(jié)果。
#include <stdio.h>
void f(int *a,int n)
{ int i,t;
for(i=0;i<n/2;i++)
{ t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
int main( )
{ int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
f(b+2,5);
for(i=5;i<10;i++)
s+=b[i];
printf("%d\n",s);
return 0;
}
4. 請寫出以下程序的運行結(jié)果。
#include <stdio.h>
int f(int *a,int n)
{ if(n>1)
return a[0] + f(&a[1],n-1);
else
return a[0];
}
int main( )
{ int aa[ ]={1,2,3,4,5},s;
s=f(&aa[0],sizeof(aa)/sizeof(int));
printf("%d\n",s);
return 0;
}
5. 請寫出以下程序的運行結(jié)果。
#include <stdio.h>
int fun(int k)
{
static int a=0;
a+=k;
return a;
}
int main( )
{ int i,s=0;
for (i=1; i<=4; i++)
s=s+fun(i);
printf("s=%d\n",s);
return 0;
}
6. 請寫出下列程序的運行結(jié)果。
#include <stdio.h>
#include <string.h>
int main( )
{
char ch[3][5]={"135","246","789"},*p[3];
int i,j,s=0;
for(i=0;i<3;i++) p[i]=ch[i];
for(i=0;i<3;i++)
for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
return 0;
}
四、編程題。 1,2,3小題每小題10分,4,5小題每小題15分,共60分。
1. 黑洞數(shù)也稱為陷阱數(shù),又稱“Kaprekar問題”,是一類具有奇特轉(zhuǎn)換特性的數(shù)。任何一個各位數(shù)字不全相同的三位數(shù),經(jīng)有限次“重排求差”操作,總會得到495。最后所得的495即為三位黑洞數(shù)。所謂“重排求差”操作即組成該數(shù)的數(shù)字重排后的最大數(shù)減去重排后的最小數(shù)。例如,對三位數(shù)207:第1次重排求差得:720 - 27 = 693;第2次重排求差得:963 - 369 = 594;第3次重排求差得:954 - 459 = 495;編寫程序,實現(xiàn)如下功能:輸入一個三位整數(shù),輸出將其轉(zhuǎn)換為黑洞數(shù)的過程,輸入輸出格式為:
輸入: 207
輸出: 1:720-27=693
2:963-369=594
3:954-459=495
如果輸入的三位數(shù)字全部相同,則只輸出一次重排求差過程,值為0就停止。
2. 編寫一個函數(shù),實現(xiàn)字符串的復制,函數(shù)首部定義為:char * str_copy(char *d, char *s)
函數(shù)功能為:將第二個參數(shù)s所表示的字符串復制到第一個參數(shù)d所表示的字符串中,函數(shù)返回值為第一個參數(shù)的值。請寫出完整的函數(shù),并寫出主函數(shù),對該函數(shù)進行驗證。 (說明:本題不允許使用string.h中的標準函數(shù),不允許改變函數(shù)首部)
3. Fibonacci數(shù)列定義如下:第1,第2個數(shù)均為1,從第3個數(shù)開始,該數(shù)是其前面兩個數(shù)之和。Fibonacci數(shù)列為:1,1,2,3,5,8,13,… 。編寫遞歸函數(shù),求Fibonacci數(shù)列的第n個數(shù),并編寫主函數(shù),調(diào)用該遞歸函數(shù),輸出數(shù)列第60個數(shù)的值。
4. 編寫一個函數(shù),函數(shù)功能為判斷一個整數(shù)是否為質(zhì)數(shù)。并寫出主函數(shù),調(diào)用該函數(shù),將10000之內(nèi)的所有質(zhì)數(shù)輸出到屏幕,每行輸出10個數(shù)據(jù),并統(tǒng)計一共有多少個質(zhì)數(shù);并將這些質(zhì)數(shù)依次寫入一個文件中,文件名為zhishu.dat,文件中的格式與輸出格式一致。
5. 定義一個結(jié)構(gòu)體類型描述圖書的基本信息,一本圖書的基本信息包括:編號,書名,作者,價格。
編寫程序,實現(xiàn)如下功能:(1)輸入10本書的信息,保存在結(jié)構(gòu)體數(shù)組中。(2)輸出10本圖書中價格最高的圖書信息。(3)對結(jié)構(gòu)體數(shù)組按照價格進行升序排列,排序之后,下標為0的數(shù)組成員存放價格最低的圖書信息,…下標為9的數(shù)組成員存放價格最高的圖書信息。
點擊查看:C語言程序設計
原文標題:2020年考研真題
原文鏈接:https://yjsy.glut.edu.cn/info/1189/4400.htm
以上就是“考研真題:桂林理工大學2020年碩士研究生入學考試真題C語言程序設計”的相關(guān)內(nèi)容,更多考研信息,請持續(xù)關(guān)注。