C程序设计复习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11 .从键盘输入一个大写字母,要求改用小写字母输出。请填空:
#include <stdio.h> void main() { char c1,c2;
c1= getchar() ; printf( “%c, %d\n”,c1,c1);
c2=c1+32 ; printf( “%c, %d\n”,c2,c2); }

母或下划线 。
17.计算表达式: x=(i=4, j=10, k=24) 后, x 的值为
24

18.若 a 和 b 均是 int 型变量,且 a 和 b 的初值均为 5,则计算表达式 a+=b++ 后, a 的值为
10 ,b 的值为
6。
19.设 int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; 则表达式 *(p+8) 的值是 9 。
}
5. 下面程序可以逐行输出由 language 数组元素所指向的 5 个字符串。请填空。
#include<stdio.h>
void main()
{ char * language[]={
“BASIC” , “FORTRA”N, “ PROLO”G, “ JAVA” ,
“ C++”};
char ** q ;
int i=0, ,j=0;
while(i<7 && p[i]%2==1) j+=p[i++];
printf("%d\n",j);
} 运行结果: 24
7. 给出有下面一段程序的运行结果。 #include <stdio.h> int fac(int n) {
static int f=1;
3
f=f*n; return(f); } void main() { int i; for(i=1;i<=5;i++)
else
printf(__
“no\n ”______);
}
2.下面程序是将键盘输入的英文字符全改为小写英文字符输出
#include <stdio.h> void main() {
char c; while( (c=getchar())!='\n' ) {
if( c >='A'||c<='Z' ) c=c+32;
printf("%d!=%d\n",i,fac(i)); } 答案: 1! =1
2! =2 3! =6 4! =24 5! =120
8. 给出有下面一段程序的运行结果。 main()
{ int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
Void main()
{ int i,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++) scanf("%d", &a[i]
);
for (i=0;i<20;i++)
{ if(a>0)
{ count++;
sum+= a[i]
;
}
}
printf("sum=%d,count=%d\n",sum,count);
则 *(p[0]+1) 所代表的数组元素是
a[1][1] 。
11.代表一个反斜杠字符“ ”的转义字符是 '\\'

12 .变量的指针就是变量的地址,存放变量地址的变量就是
指针变量 ,它用来指向另一
个变量。
13 .++i 和 i++的不同之处在于 i++是先使用 i 的值后,再执行 i=i+1 ;而 ++i 是先执行 i=i+1
4
则输出“ no”并换行 。请填空。
#include <stdio.h>
void main()
{ int k;
printf(
“Enter a int number: ”);
scanf( “%d”,&k);
if____(k%5==0||k%13==0)__________
printf(
“yes\n ”);
20.若有以下定义 :
char a; int b;
float c; double d;
则表达式 a*b+d-c 值的类型为 double

21.*(p++) 和*(++p) 作用不同,它们的意义分别是 *(p++) 先取 *p 的值,后使 p 加 1, *(++p)
先使 p 加 1,再取 *p
1
二、程序理解题 请给出运行以下程序的输出结果: 1. #include <stdio.h> void main() { int u=24,v=16,w;
int i=0,j=0; while(i<7 && p[i]%2==1) j+=p[i++]; printf("%d\n",j); } 输出结果: 24 。
4、下列程序的运行结果是
total=144

void main()
{ int arr_sum(int arr[],int n);
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf("%c",c); } printf("\n"); }
, 用换行符结束循环。 请填空。
3.有一个一维数组 score, 内放 10 个学生成绩,求平均成绩,请填空。 #include<stdio.h> float average(float array[10]); void main()
int i; for(i=0;i<80;i++) { str[i]=getchar();
if(str[i]=='\n') break; } str[i]= '\0' ; sptr=str; while(*sptr) putchar(*sptr }
++ );
7、程序的功能是用递归方法计算第五位学生的年龄,请填空。
2
int *p,total; p=a[0]; total= arr_sum (p,12); printf( “ total=n%”d ,total); } int arr_sum(int arr[],int n) { int i,sum=0; for(i=0;i<n;i++)
sum=sum+arr[i]; return(sum); }
int k;
for (k=0;k<5;k++)
{ q= language+k ;
printf(
“ %s\n” ,*q);
}
}
6.以下程序的功能是 : 从键盘上输入一行字符 , 存入一个字符数组中 , 然后输出该字符串 , 请填 空。
6
#include<stdio.h> void main() { char str[81],*sptr;
while(v) {w=u % v; u=v ; v=w;} printf("%d\n",u); } 输出结果为: 8
2. void main() { char s[]"Yes\n/No",*ps=s;
puts(ps+4); *(ps+4)=0; puts(s); } 输出结果: /No
Yes
3. main() { int p[7]={11,13,14,15,16,17,18};
}
float average(float array[10])
{int i;
float aver,sum=array[0];
for( i=1;i<10;i++ )
sum=sum+array[i];
aver=sum/10
;
return aver
;
}
4.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。请填空。
的值为 102

4.在标准 C 语言中,输入操作是由库函数
scanf() 完成的,输出操作是由库函
数 printf()
完成的。
5.对以下说明: int c[10] = {116, 125, 218, 312, 100, 40, 13, 67, 186}

c[4] 的值为 100

6.在 C语言中,引用数组元素时,引用数组元素时,其数组下标的数组类型允许
7
9)以下程序的功能是:通过指针操作,找出三个整数中的最小值并输出。请填空。 #include<stdio.h>
void main( )
{ int *a,*b,*c, num,x,y,z;
a=&x; b=&y; c=&z;
printf( “输入 3 个整数: ”);
scanf(“%d%d%d”,a,b,c);
是 整型常量或整型表达式

7.设 y 为 int 型变量,请写出描述“ y 是偶数”的表达式 (y%2)==0 。
8.设 int i=0,j=1,k=2,a=3,b=4;
执行表达式 (a=i<j)&&(b=j>k) 的值为 0

9.与表达式 a+=b 等价的另一书写形式是 a=a+b 。
10.有以下定义和语句 int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1];
5. 给出以下程序的运行结果: void main()
{ int a,b,c; a=25b=025;c=0x25;printf("%d, %d, %d\n",a,b,c);
}
运行结果: 25, 21, 37
6. 给出有下面一段程序的运行结果。 void main()
{ int p[7]={11,13,14,15,16,17,18};
int i=0,j=0,s=0;
while(i++<4)
{
if(i==2||i==4) continue;
j=0;
do{ s+= a[j]; j++; } while(j<4);
}
printf("%d\n",s);
} 运行结果: 92
三、程序填空题 1. 以下程序可判断输入的一个整数是否能被 5 或 13 整除,若能整除,输出“ yes”并换行 ,否
12.以下程序的功能是 : 从键盘上输入一行字符 , 存入一个字符数组中 , 然后输出该字符串。 请 填空: #include<stdio.h> void main() { char str[81],*sptr;
printf( “%d,%d,%d\n”, *a,*b,*c);
num=*a;
if (*a>*b)
num=*b
;
if (num>*c) num=*c ;
printf( “输出最小整数: %d\n”, num);
} 10. C 语 言 源 程 序 文 件 的 后 缀 是 __.cpp_________, 经 编 译 后 生 成 的 文 件 的 后 缀 是 __.obj_______,连接后生成的文件的后缀是 .exe。
{float score[10],aver; int i; printf("input 10 scores:\n");
for(i=0;i<10;i++) scanf("%f", &score[i] );
5
printf("\n");
aver=average(score);
printf("average score is %5.2f",aver);
程序设计基础复习题答案
一、 填空题
1、 C 语言所提供的实型变量分为两种类型,它们是
float 和 double 。
2、一个 C 源程序中至少应包含一个 主函数或 main 函数 。
3.已知字母 a 的 ASCII 码为十进制数 97,且设 ch 为字符型变量,则表达式 ch=’ a’ +-’’3’8’
递归公式如下:
10
(n=1)
age(n)=
age(n-1)+2
(n>1)
程序:
int age(int n)
{ int c;
if( n==1
)
c= 10
;
else
c= age(n-1)+2
;
return (c);
}
void main()
{ printf( “age:%d\n”, age(5));
}
8)下面程序的功能是在三个字符串中找出最小的,请填空: #include<stdio.h> #include<string.h> void main( ) { char s[20],str[3][30]; int i; for (i=0;i<3;i++) gets(str[i]); strcpy ( s, (strcmp(str[0],str[1])<0?str[0]:str[1]) ); if (strcmp(str[2],s)<0) strcpy( s,str[2]); print( “%s\n”, s ) ; }
后,再使用 i 的值 。
14.设 x、来自百度文库 和 z 是 int 型变量,且 x=3,y=4,z=5, 则表达式 ! ((x<y) && !z||1) 值为 0 。
15.已知函数 int f(int k) { return ((k<0)?1:f(k-2)+2); }
则 f(3) 的值是 5

16.C 语言中的 标识符 只能由字母、数字和下划线三种字符组成,且第一个字符必须为
相关文档
最新文档