当前位置:
文档之家› 江西财经大学2010年专升本试卷C语言
江西财经大学2010年专升本试卷C语言
void YHTriangle(int a[][SIZE], int n); //生成杨辉三角 void PrintYHTriangle(int a[][SIZE], int n); //打印杨辉三角
for(j=0;j<k;j++) if(strcmp(st[j].name,x[i])==0){ st[j].count++ ; break; } if(j>=k){ strcpy( ⑩ ); st[k].count++; k++; } } return k; } void main() { char s[10][20]= {"liu","wu","zhao","zhao","wu","liu","wu","zhao","wu","wu"}; Person stat[5]={0}; int i,n; n=count(s,10,stat); for(i=0;i<n;i++) printf("%s:%d\t",stat[i].name,stat[i].count);} 五、程序设计题(共30分) 1.爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2 阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩 下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶 不剩。编程求这条阶梯至少有多少阶。(8分) 2.张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说 谎,现问这三个人中到底谁说的是真话,谁说的是假话?请编程求解。(10 分) 3.编程打印如下形式的杨辉三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 要求用户从键盘输入杨辉三角形的行数n(n不超过10),请按照如 下函数原型进行编程,不能使用全局变量。(12分)
2.阅读以下程序,请描述该程序的功能。 #include<stdio.h> void main(){ int a[10]={1,-3,0,-5,10,6,-8,9,6,-7}; int i,s=0,count=0; for(i=0; i<10; i++) if(a[i]<0){ s+=a[i], count++; } else continue; printf ("s= %d, count=%d\n", s ,count); } 3.阅读以下程序,写出程序的运行结果。 #include <stdio.h> void main(){ int k=8, n=0; for (;n<k;){ n++; if (n%4 ==0) break; k--; } printf("k=%d, n=%d\n",k,n);} 4.阅读以下程序,写出程序的运行结果。 #include<stdio.h> void main(){ int i,j,a[3][3]={0}; for( i=0; i<3;i++) for( j=0; j<3;j++) switch(i-j+2){ case 0:case 1:a[i][j]=1;break; case 2:a[i][j]=2;break; case 3:a[i][j]=3;break; case 4:a[i][j]=5;break; } for(i=0;i<3;i++){
for(j=0;j<3;j++) printf("%4d",a[i][j]); printf("\n"); } } 5.阅读以下程序,写出程序的运行结果。 #include<stdio.h> int Fun(int x){ static int y = 5; y += x; return y; } void main(){ int k; for (k=1; k<=3; k++) printf("%4d", Fun(k));} 6.阅读以下程序,写出程序的运行结果。 #include<stdio.h> int t=0; int sub(int *s){ *s+=1; t+=*s; return t; } void main(){ int i; for(i=1;i<4;i++) printf("%4d",sub(&i));} 四、程序填空(共20分,每空2分) 1.对输入的小于1000的正整数,求其相应的个位数、十位数和百 位数并打印输出。 #include<stdio.h> void main(){ int x,a,b,c; do{printf("输入一个1000以下的整数:"); scanf("%d",&x); printf("\n");
尾为止*/ while(w[i]==' ' && w[i+1]==' ') strcpy( i++; ⑤ );
} /*去掉尾部空格,因为通过上一个循环后,句子后最多只剩 一个空格了*/ if(w[strlen(w)-1]==' ') ⑥ ; printf("规范化后的句子是:%s.\n",w);} 4.下面的程序实现在一个递减序的数列在插入一个数,插入后, 数列仍然有序。数列保存在数组a中,请在空处填上适当表达式,使得 程序能实现该功能。 #include <stdio.h> void main(){ int a[8]={35,30,26,24,15,7,5},i,x; printf("请输入一个整数:"); scanf("%d",&x); for(i=6;i>=0;i--){ if(a[i]<x) a[i+1]= ⑦ ; else break; } ⑧ =x; for(i=0;i<8;i++) printf("%4d",a[i]);} 5.程序功能:选票统计。二维数组s中保存了投票后10张有效选 票上所填写的候选人姓名,结构数组stat中保存统计结果。程序运行后 的输出结果是"liu:2 wu:5 zhao:3"。 #include<stdio.h> #include<string.h> typedef struct{ char name[20]; /*候选人姓名*/ int count; /*候选人得票数*/ } Person; int count(char x[][20],int n, ⑨ ){ int i,j,k=0; for(i=0;i<n;i++){
}while( ① ); a=x/100; b= ② ; c=x%10; printf("%d的个位数是%d,十位数是%d,百位数 是%d\n",x,c,b,a); } 2.以下函数的功能是删除字符串s中的数字字符,请填写缺少的语 句。 #include <stdio.h> void delnum(char s[]){ int i,j; for( i=0, j=0; s[i]; i++) if ( s[i]<'0' || s[i]>'9'){ s[j]=s[i]; ③ ; } s[j]= ④ ; } void main(){ char str[80]; gets(str); delnum(str); puts(str);} 3.以下程序段可以将输入的一个英文句子规范化。规范化是指过 滤掉句子中不必要的空格,第一个字母大写,单词之间只要一个空格。 #include <stdio.h> #include <string.h> void main(){ char w[80]; int i=1; printf("请输入一个英文句子:");gets(w); while(w[0]==' ') strcpy(w,w+1); /*如果句子前有空格,去掉首部 空格*/ if( w[0]>='a' && w[0]<='z') w[0]-=32; /*如果首字母小写,则将 其变为大写*/ while(w[i]!='\0') {/*去掉单词之间多余的空格,直到句子末
2010年转升本选拔考试《C语言程序设计》试卷
一、用C语言描述下列命题(共16分,每小题2分) 1.一椭圆方程为: ,写出平面上点p(x,y)落在椭园内的条件。 2.写出a,b,c三个整数能作为直角三角形三边的条件。 3.a、b和c均为整型变量,它们中至少有一个小于60,请用表达式 进行描述。 4.写出名为fun的函数声明语句,该函数用于对传入的二个字符串 进行比较,并返回较大串的地址。 5.以只读方式打开名为abc.bin的二进制文件,请写出相关的函数 调用语句。 6.定义一个数组p,该数组包含4个元素,它的每一元素均用于保 存整型量的地址。 7.写出定义数据类型date的语句,类型date用于表示日期,包括 年、月、日。 8.写出使得条件10≤|x-y|<30不成立的C语言表达式。 二、根据要求画图表示算法(共10分,每小题5分) 1.y是关于x的函数,函数表示如下: 请画出根据输入的x值来计算y的流程图(或N-S图)。 0<x<1 1≤x<2 2≤x<3 3≤x<4 2.从键盘输入10个数,现要找出其中最大数并输出最大数在10个数 中序号,请画出相应的算法流程图(或N-S图)。 三、程序阅读题(共24分,每小题4分) 1.写出以下程序的运行结果。 #include<stdio.h> void main(){ int a[ ]={2,4,6,8,10}; int y=0,x,*p; p=&a[1]; for(x=0; x<3; x++) y+=*(p+x); printf("%d\n",y); }