当前位置:文档之家› 专升本C语言练习册答案补充

专升本C语言练习册答案补充

专升本C语言练习册答案补充
专升本C语言练习册答案补充

第一讲 C程序和C程序概述

模拟题

C语言程序设计试卷(A)

考试时间:120分钟

请考生注意:本卷共五道大题,请将第一、二、三题的正确答案填在答题卡对应的编号上。

一、填空(10分,每题1分)

1.一个C语言程序总是从main函数开始执行。

2.x=2,y=-3,z=3,则表达式x||y+z&&y-z的值为 1 。

3.系统判断字符串结束的标志是…\0?。

4.能正确表示“当ch为小写字母为真,否则为假”的表达式是.ch>?a?&&ch

二、阅读程序,写出程序运行结果(30分,每题6分)

else printf(“%3d”,i);

}

2 4 6 8 10 2.

2.main( ) { int i,j,k; printf(“\n”); }

}

3.main() {int i,j,sum=0,a[3][3]; if(i==j) sum+=a[i][j]; } printf(“%d”,sum);

}

6

4.int x,y num() printf("%d,%d",x,y) }

5,11

5. main() printf(“%d,%d\n”,*p,*(a+2))printf(“%d,%d\n”, *(p+3),*p++);

} 1,5

7,1

三、程序填空(20分,每空2分)

阅读程序说明及程序,把它补充成一个完整的程序

1.下面程序是用冒泡法对10个数进行从小到大排序的程序。

{ int a[10] ,i,j,temp; scanf("%d", &a[i] ); for(j=0; j a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}

printf("%5d",a[i]);

}

2.下面程序将按如下形式输出杨辉三角形。

main() { a[i][0]=1; a[i][i]=1;} for(i=2;i

3.for(j=0; j<=i;j++)

}

}

四、问答题(10分,每题5分)

1.简述字符常量与字符串常量的区别。

字符常量:单引号括起来的一个字符,用字符变量存放

字符串常量:双引号括起来的一串字符,用字符数组存放

2.简述局部变量的三种存储方式。

auto,static,register

五、编写程序(30分,每题10分)

1. 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

2. 编写程序,输入一个字符串,计算出这个字符串的长度(要求不能使用strlen函数)

3. 编写程序,在主函数中输入10个数,在函数invert中将10个数按反序存放,并在主函数中输出结果。

1、main()

{int number[10];

aa(number);

bb(number);

cc(number);

}

aa(int *array)

{int i;

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

scanf("%d,",&array[i]);

}

bb(int *array)

{int *max,*min,t;

int *p;

p=max=min=array;

for(p=array+1;p

if(*max<*p) max=p;

else if(*min>*p) min=p;

t=*max;*max=array[9];array[9]=t; t=*min;*min=array[0];array[0]=t; }

cc(int *array)

{ int *p;

for(p=array;p

printf("%d,",*p);

printf("%d\\n",array[9]);

getch();

}

2、#include"stdio.h"

int get_str_length(char c[]){

int length=0;

int i=0;

while(c[i++])

length++;

return length;

}

void main(){

char c[10000];

printf("请输入一个字符串:");

scanf("%s",c);

printf("字符串的长度为:%d\n",get_str_length(c)); }

3.#include "stdio.h"

#include "math.h"

#define N 10

void invert(int x[])

{ int i,t;

for(i=0;i

{t=x[i];x[i]=x[N-1-i];x[N-1-i]=t;}

}

main()

{

int i,a[N];

printf("please input %d integers:\n",N);

for(i=0;i

{

printf("the %dth number is:",i);

scanf("%d",&a[i]);

}

printf("the integers you input is:\n");

for(i=0;i

printf("%5d ",a[i]);

invert(a);

printf("\nthe integers after invert is:\n");

for(i=0;i

printf("%5d ",a[i]);

printf("\n");

}

C语言程序设计试卷(B)

考试时间:120分钟

请考生注意:本卷共五道大题,请将第一、二、三题的正确答案填在答题卡对应的编号上。

1.3.5

2.ASCII

3.ch>?A?&&ch0&&x<5|| y>0&&y<5

5.在局部变量定义的函数或复合语句内

6.数组的首地址7.strcat(s1,s2) 8.int (*p)()

9.a[2] 10.静态存储区

一、填空(10分,每题1分)

1.x=3.5,y=5,z=7.8,则表达式x+y/3*(int)(x+z)%2/5的值为 3.5 。

2.C语言中,char 型数据在内存中的存储形式是ASCII 。

3.判断字符型变量ch是否为大写字母的表达式是ch>?A?&&ch

4.表示“x,y中至少有一个大于0且小于5”的表达式是x>0&&x<5|| y>0&&y<5 。5.局部变量的作用范围是: 在局部变量定义的函数或复合语句内。

6.若定义x[5],则数组名x的含义是数组的首地址;

7.若说明char s1[20]=”hello”,s2[]=”world”;则将s2与s1连接的语句为strcat(s1,s2) 。8.定义一个指向函数的指针变量p的语句为int (*p)() 。

9.若定义char a[5],*p=a;则*(p+2)表示a[2] 。

10.全局变量放在内存的__静态存储区。

二、阅读程序,写出程序运行结果(30分,每题6分)

1.main()

{int a=2,b=3,c; c=a+b; printf(“%d,%d%d\n”,a,b,c);

}

3 , 1 , 5

3 , 5 , 4

2.main( ) { b+=3; continue; } b-=5; printf(“%d\n”,a);

}

3. main() {int i,f[10]; f[0]=0;f[1]=1; for(i=2;i<10;i++) f[i]=f[i-2]+f[i-1];

for(i=0;i<10;i++) printf(“%d,”,f[i]); }

0,1,1,2,3,5,8,13,21,34

4. main() {char *p,s[]="ABCDEFG"; p=s; while(*p!= '\0' ) {printf("%s\n",p);

p++; if(*p!= '\0') p++; else break; } } ABCDEFG

CDEFG EFG G

5.main() {int i; for(i=2;i<5;i++) printf("fun(%d)=%d\t",i,fun(i)); printf("\n"); } int fun(int x) {static int f=1; return(f*=x); } fun(2)=2 fun(3)=6 fun(4)=24 三、程序填空(20分,每空2分)

阅读程序说明及程序,把它补充成一个完整的程序 1.下面程序运行结果输出如下图形。

main( ) { int i; for(i=1; i<=4 ; i++) printstar(i) ;

} void printstar(int i ) {int j,k;char space=??; for(j=1;j<=5-i;j++) p rintf(“%c”, space); for(k=1; k<=2*i-1 ; k++) printf(“%c”, …*?);

printf(“\n”) }

2.下面程序将输入的一个字符串按逆序存放。 #include “stdio.h”

main() {int i, n,temp; char a[50] ; gets( a ); n=strlen(a); for(i=0; i

四、问答题(10分,每题5分) 1.什么是全局变量和局部变量? 全局变量:函数外定义的变量

局部变量:函数内或复合语句内定义的变量

* * *** ***** *******

2.定义一个结构体变量,包括学号、姓名(最多8个字符)、性别、年龄和住址成员。struct student

{int num; char name[8];char sex;int age;char addr[30];}p1;

五、编写程序(30分,每题10分)

1. 输入一行字符,统计其中字母字符、数字字符和其它字符的个数。

2. 编写程序, 输入10个学生3门课的成绩, 计算每个学生的平均成绩,按平均成绩降序排列并打印出结果。

3.编写一个程序,将字符串a复制到b中。要求不能使用strcpy函数。

1、#include

#include

main()

{char c;

int w=0,x=0,y=0,z=0;

while((c=getchar())!='\n')

{if((c>='a'&& c<='z')||(c>='A' && c<='z'))

w++;

else if (c==' ')

x++;

else if (c>='0' && c<='9')

y++;

else

z++;

}

printf("w=%d,x=%d,y=%d,z=%d",w,x,y,z);

}

2 。

#include"string.h"

#define M 10

#define N 3

main()

{

int i,j;

float t;

float total=0;

char name[M][5];

char change[1][5];

float score;

score[M-1][N-1]*/

float average[M];

clrscr();

for(i=0;i

{

total = 0; /*here*/

printf("name:");

scanf("%s",name[i]);

printf("score:");

for(j=0;j

{

scanf("%f",&score);

total+=score;

}

average[i] = total/N;

}

for(i=0;i

{

for(j=0;j

if(average[j]

{

t=average[j];average[j]=average[j+1];average[j+1]=t;

strcpy(change[0],name[j]);

strcpy(name[j],name[j+1]);

strcpy(name[j+1],change[0]);

}

}

for(i=0;i

{

printf("%s:",name[i]);

printf("%f\n",average[i]);

}

getch();

}

3.

#include

void strcopy (char *wordaPre, char *wordbPre); int main(void)

{

char worda[100];

char wordb[100];

printf("Please input some chars: ");

gets(worda);

strcopy (worda, wordb);

puts(wordb);

return 0;

}

void strcopy (char *wordaPre, char *wordbPre) {

while (*wordaPre != '\0')

*wordbPre++ = *wordaPre++;

*wordbPre='\0';

}

相关主题
文本预览
相关文档 最新文档