您好,欢迎来到九壹网。
搜索
您的当前位置:首页华科2012级信息学院C语言试卷(A)

华科2012级信息学院C语言试卷(A)

来源:九壹网


2012级信息学院《C语言程序设计》试卷(闭卷)

一、判断下列语句或程序的对错。(“×”表示错,“√”表示对)(10分) ( 1) char ch=’55’; ( ) ( 2 ) unsinged int a=b=c=5; ( ) ( 3) int a=2,*p; p=&a;

printf(”%d”, *&a); ( ) (4) int a[5][5], (*p)[5]; p=&a[0][0];

(5) char a=’a’,c; c=a++;

(6) int n; scanf(”%d”,&n); int a[n];

(7) int a[10],*p; p=a+2;

(8) int a,b; scanf(”%d,%f”,a,b);

(9) float a=1,*b=&a,*c=&b; (10) char str[]={”World”}; printf(”%c”,*(str+2));

二、计算下列表达式的值(10分) 设 int x=3,y=-4,z=4; float k=3.5;

(1)x++-y+++z (2)y>z||z>2&&x++ (3)x|z&x^z (4)x-y+!z-1&&x+y/2 (5)y+(x/3*(int)(x+k)/2)%4 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ( ( ( ( ) ) ) ) )

三、改错,根据题意改正下列程序的错误和漏掉的部分(10分) (1)输入球体半径r,求其体积. #include “stdio.h”; define pi=3.1415926; float volume(int r); void mian() { float r,v;

scanf(“%d”, r); v= volume(r);

printf(“%d”,v); }

float volume(int r); {

v=4/3*pi*r*r*r; return v; }

(2)利用指针数组对字符数组中的5个姓名字符串排序,字符数组内容不变。. #include ;

void main() {

char name[5][20]; char* p[5];

int i; char temp[20]; for(i=0;i<=5;i++) {

gets(name+i);

p=name[i];

}

for(i=0;i<5;i++) for(j=0;j<5;j++) {

if(p[i]>p[j]) {

temp=p[i]; p[i]=p[j]; p[j]=p[i]; } }

for(i=0;i<5;i++)

printf(“%c”,p[i]); }

四、程序填空(10分)

(1)给出年月日,计算出该日是该年的第几天。 #include void main( ) {

int year, month, day, days, i, d; printf(“请输入年,月,日:”); scanf(“%d%d%d”, &year, &month, &day); days=0;

for( i=1; ; i++) {

switch ( ) { case 1: case 3:

case 5: case 7: case 8: case 10: case 12: d=31;

; case 4: case 6: case 9:

case 11: d=30; break; case 2:

if (year%4==0&&year %100 !=0 || year%400==0) d=29; else d=28; break; } }

printf(“%d年%d月%d日是该年的第%d天\\n”,year, month ,day, ;) }

(2)将一个指字符串的正序和反序进行连接,形成一个新串放在另一个字符数组 中。例如:当字符串为\"ABCD\"时,则新字符数组的内容应为\"ABCDDCBA\"。

#include #include void fun (char *s, char *t); void main() {

char S[100], T[100];

printf(\"\\nPlease enter string S:\"); scanf(\"%s\ ); fun(S, T);

printf(\"\\nThe result is: %s\\n\}

void fun (char *s, char *t) { int i, d; d = ; for (i = 0; i五、写程序输出结果(25分) (1)

#include int a = 1;

void func() { }

void main() {

{ int a ; a= x+y;

printf(\"main:x=%d,y=%d, a=%d\\n\" ,x, y ,a); }

}

printf(\"main:x=%d,y=%d, a=%d\\n\" ,x, y ,a); func(); y=a;

printf(\"main: x=%d, y=%d, a=%d\\n\func();

static int x = 2; int y;

static int x=1; int y=2; x = x+1; a = a+2; y = y+a;

printf(\"func: x=%d, y=%d, a=%d\\n\

(2)

#include \"stdio.h\" #define M 10 void main( ) {

int a[M+1]={10,20,30,40,50,60,70,80,90,100}; int i,n,*p,*q; n = 45;

a[M]=n;

for(p=a,i=0;i<=M;i++) {

if(n<=*(p+i))

{

p=p+i; break; } }

for(q=a+M-1; q>=p; q--) {

*(q+1)=*q;

}

*p=n;

for(p=a,i=0;iprintf(\"%d,\

} } (3)

#include #include void main() {

char ch;

unsigned int i,j,bit,dit,n; long int a[20];

char *str = \"a123x456__7\";

for (i=0,j=0,a[0]=0,bit=1,dit=0; ich=*(str+i);

if(ch>='0'&&ch<='9') {

a[j]*=bit; a[j]+=(ch-48); bit=10; dit=1; n=j;

}

else

{

if (dit==1)

{

j++; a[j]=0 ;

} dit=0;

bit=1;

} }

for (i=0;i<=n;i++)

{ } (4)

#include

struct Key {

char *keyword; int keyno; };

void main( )

}

printf(\"a[%d]=%d,\

{

struct Key kd[3] = {{\"are\ struct Key *p; int a; char *str;

p = kd;

str = p->keyword;

printf(\"str = %s\\n\

a = p++->keyno; printf(\"a = %d\\n\

a = p->keyno; printf(\"a = %d\\n\ } (5)

#include #include struct person {

char name[20]; int count; }; void main() {

struct person leader[3]={{\"liu\ char name[20] = \"wang\

for(n=0;n<3;n++)

{

if(!strcmp(name,leader[n].name)) {

m = leader[n].count; break; } }

printf(\"count=%d\\n\ for(n=0;n<3;n++)

printf(\"%s:%d\\n\}

六、编写程序(35分)

(1)已知四位数a2b3能被23整除,编程求此四位数。(8分)

(2)一球从100米高度自由落下,每次落地后反弹调回原高度的一半,再落下;求它在第10次落地时,共经过多少米?第10次反弹多高?(8分)

(3)一个公司,有若干名员工,每名员工有姓名,性别,工龄,工资等信息。编程输入并建立员工档案信息,并要求输出工龄大于10年,工资少于3000元的所有男员工信息。(输入和输出过程用不同函数实现)(9分)

(4)输入一行包含若干单词的字符串,单词之间用空格分开,要求按单词长短从小到大的次序排序后形成新的字符串输出。(假定字符串中单词个数不超过10个,字符串输入并形成单词序列,单词排序,形成新串并输出要求用不同的函数实现)(10分)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务