2016計算機三級《數(shù)據(jù)庫技術》上機試題
第41題 請編寫函數(shù)fun,該函數(shù)的功能是:將m行n列的二維數(shù)組中的字符數(shù)據(jù),按列的順序依次放到一個字符串中。
答案:
void fun(char (*s)[n],char *b)
{int i,j,k=0;
for(j=0;j
for(i=0;i
{b[k]=*(*(s+i)+j)
k++;}
b[k]=‘\0’;}
第42題 下列程序定義了n×n的二維數(shù)組,并在主函數(shù)中自動賦值。請編寫函數(shù)fun(int a[][n],int n),該函數(shù)的功能是:將數(shù)組右上半三角元素中的值乘以m。
答案:
void fun(int a[][n],int m)
{int i,j;
for(j=0;j
for(i=0;i<=j;i++)
a[j]=a[j]*m;}
第43題 編寫一個函數(shù),從傳入的num個字符串中找出一個最長的一個字符串,并通過形參指針max傳回該串地址(用****作為結束輸入的標志)。
答案:
char *fun(char (*a)[81],int num)
{int i;
char *max;
max=a[0];
for(i=0;i
if(strlen(max)
max=a;
return max;}
第44題 編寫一個函數(shù),該函數(shù)可以統(tǒng)計一個長度為2的字符串在另一個字符串中出現(xiàn)的次數(shù)。
答案:
int fun(char *str,char *substr)
{int n;
char *p,*r;
n=0;
while(*str)
{p=str;
r=substr;
while(*r)
if(*r==*p)
{r++;
p++;}
else
break;
if(*r==‘\0’)
n++;
str++;}
return n;}
第45題 假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:只刪除字符串前導和尾部的*號,串中字母之間的*號都不刪除。形參n 給出了字符串的長度,形參h給出了字符串中前導*號的個數(shù),形參e給出了字符串中最后的*個數(shù)。在編寫時不得使用c語言給提供得字符串函數(shù)。
答案:
void fun(char *a,int n,int h,int e)
{int i=0;
char *p;
for(p=a+h;p
{*(a+i)=*p;
i++;}
*(a+i)=‘\0’;}
第46題 學生得記錄由學號和成績組稱個,n名大學生得數(shù)據(jù)已在主函數(shù)中放入結構體數(shù)組s中,請編寫函數(shù)fun,它的功能時:按分數(shù)的高低排列學生的記錄,高分在前。
答案:
void fun(strec a[])
{int i,j;
strec t;
for(i=0;i
for(j=i;s
if(a.s
{t=a;
a=a[j];
a[j]=t; }}
第47題 請編寫一個函數(shù)void fun(char *ss),其功能時:將字符串ss中所有下標為奇數(shù)位置上的字母轉換為大寫(若位置上不是字母,則不轉換)。
答案:
void fun(char *ss)
{int i,n=0;
char *p=ss;
while(*p)
{n++;
p++;}
for (i=0;i
if ((ss=‘a’&ss<=‘z’)&i%2!=0)
ss=ss-32;
ss=‘\0’;}
第48題 請編寫函數(shù)fun,其功能是:將兩個兩位數(shù)的正整數(shù)a,b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位依次放在c數(shù)的千位和十位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。
答案:
void fun(int a,int b,long *c)
{*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;}
第49題 請編寫函數(shù)fun,其功能是:將s所指字符串中下標位偶數(shù)同時ascii值為奇數(shù)的字符刪除,s中剩余的字符形成的新串放在t所指的數(shù)組中。
答案:
void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i
if(i%2==0&s%2!=0)
else
{f[j]=s;
j++;}
t[j]=‘\0’;}
第50題 已知學生的記錄是由學號和學習成績構成,n名學生的數(shù)據(jù)已存入a機構體數(shù)組中。請編寫函數(shù)fun,該函數(shù)的功能是:找出成績最高的學生記錄,通過形參返回主函數(shù)(規(guī)定只有一個最高分)。
答案:
void fun(stu a[],stu *s)
{int i,max;
max=a[0].s;
for (i=0;i
if(a.s>max)
{max=a.s;
*s=a;}}
第51題 請編寫函數(shù)fun,其功能是:將所有大于1小于整數(shù)m的非素數(shù)存入xx所指的數(shù)組中,非素數(shù)的個數(shù)通過k傳回。
答案:
void fun(int m,int *k,int xx[])
{int i,j;
int t=0;
for(i=2;i
{j=2;
while(j
{if(i%j==0)
{xx[t]=i;
t++;
break;}
j++;}
*k=t;}}
第52題 編寫一個函數(shù)fun,它的功能是:實現(xiàn)兩個字符串的連接(不使用庫函數(shù)strcat),即把p2所指的字符串連接到p1所指的字符串后。
答案:
void fun(char p1[],char p2[])
{int i=0,n=0;
char *p=p1,*q=p2;
while (*p)
{p++;
n++;}
i=n;
while(*p)
{p1=*q;
q++;
i++;}
p1=‘\0’;}
第53題 請編寫函數(shù)fun,該函數(shù)的功能是:實現(xiàn)b=a+a,即把矩陣a加上a的轉置,存放在矩陣b中。計算結果在main函數(shù)中輸出。
答案:
void fun(int a[3][3],int b[3][3])
{int i,j,at[3][3];
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
at[j]=a[j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[j]=a[j]+at[j];}
第54題 學生的記錄由學號和成績組稱個,n名學生的數(shù)據(jù)已在主函數(shù)中放入結構體數(shù)組s中,請編寫函數(shù)fun,它的功能是:把低于平均分的學生數(shù)據(jù)放在b所指的數(shù)組中,低于平均分的學生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回。
答案:
double fun(strec *a, strec *b,int *n)
{double aver=0.0;
int i,j=0;
*n=0;
for (i=0;i
aver+=a.s;
aver/=n;
for(i=0;i
if(a.s
{b[j]=a;
(*n)++;
j++; }
return aver;}
第55題 請編寫函數(shù)fun,該函數(shù)的功能是:將m行n列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的儲存單元中。
答案:
void fun(int(*s)[10],int *b,int *n,int mm,int nn)
{int i,j;
for(i=0;i
for(j=0;j
{b[*n]=*(*(s+i)+j);
*n=*n+1;}}
第56題 假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:除了尾部的*號之外,將字母串中其他*號全部刪除。形參p已指向字符串中最后的一個字母。不使用c的字符串函數(shù)。
答案:
void fun(char*a,char *p)
{int i=0;
char *p=a;
while(q<=p)
{if(*q!=‘*’)
{a=*q;
i++;}
q++;}
while(*q)
{a=*q;
i++;
q++;}
a=‘\0’;}
第57題 學生的記錄是由學號和成績組成,n名學生的數(shù)據(jù)已在主函數(shù)中放入結構體數(shù)組s中,請編寫函數(shù)fun,它的功能是:把指定分數(shù)范圍內的學生數(shù)據(jù)放在b所指的數(shù)組中,分數(shù)范圍內的學生人數(shù)由函數(shù)值返回。
答案:
int fun(strec*a,strec *b,int l,int h)
{int i,j=0;
for(i=0;i
if(a.s>=l&a.s<=h)
{b[j]=a;
j++;}
return j;}
第58題 編寫函數(shù)藏服那,它的功能是:求n以內(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回。
答案:
double fun(int n)
{double s=0.0;
int i;
for(i=1;i
if(i%3==0&i%7==0)
s=s+i;
s=sqrt(s);
return s;}
第59題 請別寫函數(shù)fun,該函數(shù)的功能是:將放在字符串數(shù)組中的m個字符串(每串的長度不超過n),按順序合并組成一個新的字符串。
答案:
void fun(char a[m][n],char *b)
{int i,j,k=0;
for(i=0;i
{for(j=0;j
if(*(*(a+i)+j))
{b[k]=*(*(a+i)+j)
k++;}
else
break;
b[k]=‘\0’;}}
第60題 請編寫函數(shù)fun,該函數(shù)的功能是:刪去一維數(shù)組中所有相同的數(shù),使之只剩一個。數(shù)組中的數(shù)已按由小到大的順序排列,函數(shù)返回刪除后數(shù)組中數(shù)據(jù)的個數(shù)。
答案:
int fun(int a[],int n)
{int i,t,j=0,*p=a;
t=p[0];
for(i=0;i<=n;i++)
if(t==p)
;
else
{a[j]=t;
t=p;
j++;}
if(i>=n)
a[j]=t;
return j;}
第61題 第請編寫函數(shù)fun,該函數(shù)的功能使:統(tǒng)計各年齡段的人數(shù)。N個年齡通過調用隨機函數(shù)獲得,并放在主函數(shù)的age數(shù)組中;要求函數(shù)把0至9歲年齡段的人數(shù)放在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲的人數(shù)放在d[2]中,其余以此類推,把100歲(含100以上年齡的人數(shù)都放在d[10]中。結果在主函數(shù)中輸出。
答案:
void fun(int *a,int *b)
{int i,j;
for(j=0;i
b[j]=0;
for(i=0;i
if(a>=0&a<=9)
b[0]+=1;
else if(a>=10&a<=19)
b[1]+=1;
else if(a>=20&a<=29)
b[2]+=1;
else if(a>=30&a<=39)
b[3]+=1;
else if(a>=40&a<=49)
b[4]+=1;
else if(a>=50&a<=59)
b[5]+=1;
else if(a>=60&a<=69)
b[6]+=1;
else if(a>=70&a<=79)
b[7]+=1;
else if(a>=80&a<=89)
b[8]+=1;
else if(a>=90&a<=99)
b[9]+=1;
else
b[10]+=1;}
第62題 請編寫函數(shù)fun,該函數(shù)的功能是:統(tǒng)一一含字符串中單詞的個數(shù),作為函數(shù)值返回。一行字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格格開,一行的開始沒有空格。
答案:
int fun (char *s)
{int i,n=0;
for(i=0;i
{if(s=‘a’&s<=‘z’&s[i+1]==‘’
‖s[i+1]==‘\0’)
n++;}
return n;}
第63題 請編寫一個函數(shù)fun,它的功能是:計算并輸出給定整數(shù)n的所有因子(不包括1與自身)之和。規(guī)定n的值不大于1000。
答案:
int fun(int n)
{int s=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0)
s+=i;
return s;}
第64題 請編寫函數(shù)fun,其功能是:將s所指字符串中ascii值為奇數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中。
答案:
void fun(char *s,char t[])
{int i,j=0,n;
n=strlen(s);
for(i=0;i
if(s%2==0)
{t[j]=s;
j++;}
t[j]=‘\0’;}
第65題 請編寫函數(shù)fun,其功能是:將兩位數(shù)的正整數(shù)a、b合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上,b數(shù)的十位和個位數(shù)依次放在c數(shù)的十位和千位上。
答案:
void fun(int a,int b,long *c)
{*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;}
第66題 假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,它的功能是:刪除字符串中所有*號。在編寫函數(shù)時,不得使用c語言提供的字符串函數(shù)。
答案:
void fun(char *a)
{int i=0;char *p=a;
while(*p)
{if(*p!=‘*’)
{a=*p;
i++;}
p++;}
a=‘\0’;}
第67題 學生的記錄時由學號和成績組成,n名學生的數(shù)據(jù)已在主函數(shù)中放入結構體數(shù)組s中,請編寫函數(shù)fun,它的功能時:函數(shù)返回指定學號的學生數(shù)據(jù),指定的學號在主函數(shù)中輸入。若沒找到指定學號,在結構體變量中給學號置空串,給成績置-1,作為函數(shù)值返回(用于字符串比較的函數(shù)時strcmp)。
答案:
strec fun(strec*,char *b)
{int i;
strec h;
for(i=0;i
if(strcmp(a.num,b)==0)
{h=a;
break; }
else
{h.num=="";
h.s=-1;}
return h;}
第68題 請編寫函數(shù)fun,其功能時:計算并輸出下列多項式的值:
sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
答案:
sn=1+1/1!+1/2!+1/3!+1/4!+...+1/n!
double fun(int n)
{double t,sn=1.0;
int i,j;
for(i=1;i
{t=1.0;
for(j=1;j<=i;j++)
t*j;
sn+=1.0/t;}
return sn;}
第69題 請編寫一個函數(shù)fun,它的功能時:求fibonacci數(shù)列中大于t的最小的一個數(shù),結果由函數(shù)返回。其中fibonacci數(shù)列f(n)的定義為:
f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)
答案:
f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)
int fun(int t)
{int a=1,b=1,c=0,i;
for(i=4;i<=t;i++)
{if(c
{c=a+b;
a=b;
b=c;}
else
break;}
return c;}
第70題 編寫函數(shù)fun,它的功能時:計算并輸出下列級數(shù)和:
s=1/1*2+1/2*3+…+1/n(n+1)
答案:
double fun (int n)
{double s=0.0;
int i;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
return s;}
【計算機三級《數(shù)據(jù)庫技術》上機試題】相關文章:
2016計算機三級《數(shù)據(jù)庫技術》上機試題與答案07-02
全國計算機三級《數(shù)據(jù)庫技術》上機試題與答案10-16
計算機三級的數(shù)據(jù)庫上機試題及答案10-01
2016計算機三級數(shù)據(jù)庫技術上機試題及答案06-24
2015最新計算機三級數(shù)據(jù)庫技術上機試題及答案08-19
計算機三級《數(shù)據(jù)庫技術》上機題庫201607-23
計算機三級《數(shù)據(jù)庫技術》上機題庫及答案08-25
計算機三級上機試題09-24