第一篇:江南大學(xué)考研C語言2008真題
假設(shè)在2×10二維數(shù)組中存放了數(shù)據(jù)如下表,其中各行的元素構(gòu)成一個整數(shù),如第一行元素構(gòu)成整數(shù)1234507(最后的0不作為整數(shù)的一部分),編寫程序比較兩行元素構(gòu)成的整數(shù)的大小。2 3 4 5 0 7 0 0 0 2 4 0 6 8 9 0 0 0 0 #include “stdio.h” void main(){
int i,j,b[2];
int a[2][10]={{1,2,3,4,5,0,7,0,0,0},{2,4,0,6,8,9,0,0,0,0}};
for(i=0;i<2;i++){
for(j=9;j>=0;j--)
{
if(a[i][j]!= 0)
break;
}
b[i] = 0;for(int x=0;x<=j;x++)
b[i] = b[i]*10+a[i][x];}
printf(“%dn%dn”,b[0],b[1]);
if(b[0]>b[1])
printf(“第一行比第二行大n”);
else if(b[0]=b[1])
printf(“第一行等于第二行n”);
else
printf(“第一行比第二行小n”);} 2 隨機(jī)生成20個整數(shù),把其中的素數(shù)輸出到文件“out.txt”中,要求在文件“out.txt”中每個數(shù)之間用空格隔開,每行放5個數(shù) #include
int i, r;
srand((unsigned int)time(NULL));
for(i = 0;i < N;i++)
{
r = rand();
if(r < 0)r &= 0x7FFFFFFF;
arr[i] = r;
} } int is_prime(int n){
int i;
if(n < 2)return 0;
for(i = 2;i < n;++i)
if(n%i == 0)return 0;
return 1;}
int main(void){
int arr[N], i, count;
FILE *fp;
random20(arr);
for(i = 0;i < N;i++)
printf(“%d ”, arr[i]);
fp = fopen(“out.txt”, “w”);
count = 0;
for(i = 0;i < N;i++)
{
if(is_prime(arr[i]))
{
fprintf(fp, “%d ”, arr[i]);
count++;
if(count % 5 == 0)
fprintf(fp, “n”);
}
}
fclose(fp);
getchar();
return 0;} 3用牛頓迭代法求方程2x3-4x2+3x-6=0在1.5附近的根 #include
x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;}while(fabs(x1-x0)>=1e-5);printf(“The root of equation is %5.2fn”,x1);} 4 用遞歸法將一個整數(shù)n轉(zhuǎn)換程字符串,并輸出該整數(shù)的位數(shù)。例如輸入123,應(yīng)輸出字符串“123”和位數(shù)3,n的位數(shù)不確定,可以是任意位數(shù)的整數(shù)。#include
int num = 0;
if(data<10)
str[num++] = data + '0';
else
{
num = intToString(data/10, str);
str[num++] = data%10 + '0';
}
str[num]='