当前位置:文档之家› C语言习题答案-5

C语言习题答案-5

C语言习题答案-5
C语言习题答案-5

【习题5-1】

一、选择题

1.有定义语句“int a[][3]={1, 2, 3, 4, 5, 6};”,则a[1][0]的值是A。A.4 B. 1 C. 2 D. 5

2.执行下面的程序段后,变量k中的值为A。

int k=3,s[2];

s[0]=k;

k=s[1]*10;

A.不定值B.33 C.30 D.10

3.在定义“int a[10];”之后,对a元素的引用正确的是D。

A.a[10] B.a[6,3] C.a(6) D.a[10-10]

4.以下程序的输出结果是 C 。

void main()

{

int a[10],i;

for(i=9;i>=0;i--)

a[i]=10-i;

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

}

A.258 B.741 C.852 D.369

5.以下程序的输出结果是 D 。

void main()

{

int p[7]={11,13,14,15,16,17,18},i=0,k=0;

while(i<7&&p[i]%2)

{k=k+p[i];

i++;}

printf(”%d\n”,k);

}

A.58 B.56 C.45 D.24

6.以下数组定义中不正确的是 B 。

A.int a[2][3];

B.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

C.int c[100][100]={0};

D.int b[][2]={0,1,2,3};

7.以下能正确定义数组并正确赋初值的语句是 D 。

A.int N=5,b[N][N]; B.int a[1][2]={{1},{3}};

C.int c[2][]={{1,2},{3,4}}; D.int d[3][2]={{1,2},{34}};

8.以下程序的输出结果是 D 。

void main()

{

int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

for(i=1;i<3;i++)

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

s+=a[i][j];

printf(”%d\n”,s);

}

A.21 B.19 C.20 D.18

9.以下程序的输出结果是 C 。

void main()

{

int x[3][3]={1,2,3,4,5,6,7,8,9},i;

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

p rintf(”%d ”,x[i][2-i]);

}

A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9

10.若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是 A 。

float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A.0.0 B.4.0 C.5.0 D.6.0

二、填空题

1.在定义“int a[5][6];”后,第10个元素是a[1][3] 。

2.有以下程序

void main()

{

int m[][3]={1,4,7,2,5,8,3,6,9};

int i,k=2;

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

printf(”%d”,m[k][i]);

}

执行后的输出结果是369 。

3.若有以下程序,执行后的输出结果是58 。

void main()

{

int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},

{-21,23,0,-24},{-31,32,-33,0}};

int i,j,s=0;

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

{

for(j=0;j<4;j++)

{

if(a[i][j] <0) continue;

if(a[i][j] ==0) break;

s+=a[i][j];

}

}

printf(”%d\n”,s);

}

4.以下程序的输出结果是 4 。

void main()

{

int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

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

for(j=i;j<=i;j++)

t=t+b[i][b[j][i]];

printf("%d\n",t);

}

三、编程题

1.编写程序实现下述功能:有10位学生的成绩:17、34、90、88、55、74、95、82、43、90、编写程序找出其中的最高分,并将最高分与第一个成绩交换位置。

#include

void main()

{

int score[11]={0,17,34,90,88,55,74,95,82,43,90};

int max,max_index;

int i,temp;

max=score[1];

max_index=1;

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

{

if(score[i]>max)

{

max=score[i];

max_index=i;

}

}

printf("交换前的10个成绩\n");

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

{

printf("%3d",score[i]);

}

printf("\n");

temp=score[1];

score[1]=score[max_index];

score[max_index]=temp;

printf("交换后的10个成绩\n");

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

{

printf("%3d",score[i]);

}

printf("\n");

}

2.编写程序实现下述功能:将数组a的内容逆置重放。要求不得另外开辟数组,只能借助于一个临时存储单元。

#define N 5

#include

void main()

{

int a[N]={0,17,34,90,88};

int i,temp;

printf("正序:\n");

for(i=0;i

{

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

}

printf("\n");

for(i=0;i

{

temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}

printf("逆序:\n");

for(i=0;i

{

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

}

printf("\n");

}

3.编写程序实现下述功能:有一个已经排好序的数组。要求输入一个数,在数组中查找是否有这个数,如果有,将该数从数组中删除,要求删除后的数组仍然保持有序;如果没有,则输出“数组中没有这个数!”

void main()

{

int a[10]={1,4,6,9,13,16,19,28,40,100};

int number,i,j;

printf("\n 原始数组为:\n");

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

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

printf("\n");

printf("输入要删除的数:");

scanf("%d",&number);

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

{

if (a[i]==number)

break;

}

}

if(i<10)

{

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

a[j]=a[j+1];

printf("\n 删除%d后的数组为:\n",number);

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

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

printf("\n");

}

else

printf("\n 数组中没有这个数!\n");

}

4.编写程序实现下述功能:从键盘输入3行3列矩阵的元素,然后找出全部元素中的最大值与最小值并输出。

#include

void main()

{

int a[3][3];

int i,j,max,min;

//输入矩阵

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

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

{

printf( "请输入矩阵第%d行第%d列元素:",i+1,j+1);

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

}

//输出矩阵

printf("矩阵为:\n");

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

{

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

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

printf("\n");

}

min=a[0][0];

max=a[0][0];

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

for(j=1;j<3;j++)

{

if(a[j][i]

min=a[j][i];

if(a[j][i]>max)

max=a[j][i];

}

}

printf("最小值是%d:\n", min );

printf("最大值是%d:\n", max );

}

5.编写程序实现下述功能:从键盘输入3行3列矩阵的元素,然后分别计算两条对角线上数值的之和,并输出结果。

#include

void main()

{

int a[3][3];

int i,j,sum1=0,sum2=0;

//输入矩阵

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

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

{

printf( "请输入矩阵第%d行第%d列元素:",i+1,j+1);

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

}

//输出矩阵

printf("矩阵为:\n");

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

{

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

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

printf("\n");

}

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

{

sum1=sum1+a[i][i];

sum2=sum2+a[i][2-i];

printf("左上到右下为%d:\n", sum1 );

printf("右上到左下为%d:\n", sum2 );

}

【习题5-2】

一、选择题

1.下述对C语言字符数组的描述中错误的是 C 。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入、输出

C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

2.合法的数组定义是 A 。

A. int a[]="string";

B. int a[5]={0,1,2,3,4,5};

C. int s="string";

D. char a[]={0,1,2,3,4,5};

3. 若给出以下定义:

char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'};

则正确的叙述为 C 。

A.数组x和数组y等价 B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度 D.数组x的长度小于数组y的长度

4.运行下面的程序,如果从键盘上输入:ABC时,输出的结果是 A 。

#include

void main()

{

char ss[10]="12345";

strcat(ss,"6789");

gets(ss);printf("%s\n",ss);

}

A.ABC B.ABC9 C.123456ABC D.ABC456789 5.判断两个字符串是否相等,正确的表达方式是 C 。

A.while(s1==s2) B.while(s1=s2)

C.while(strcmp(s1,s2)==0) D.while(strcmp(s1,s2)=0)

6.以下程序的输出结果是 A 。

void main()

{

char str[12]={ 's','t','r','i','n','g'};

printf("%d\n",strlen(str));

}

A. 6

B. 7

C. 11

D. 12

7.以下程序运行后,输出结果是 B 。

void main()

{

char cf[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",cf[1]);

}

A."AAAA" B."BBB" C."BBBCC" D."CC"

8.以下程序段的输出结果是 A 。

char s[]="\\141\141abc\t";

printf("%d\n",strlen(s));

A.9 B.12 C.13 D.14

9.以下程序的输出结果是 D 。

void main()

{

char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for(k=1;k<3;k++)

printf("%s\n",w[k]);

}

A.ABCD B.ABCD C.EFG D.EFGH

FGH EFG JK IJKL

KL IJ O

M

10.下列程序执行后的输出结果是 A 。

#include

void main()

{

char arr[2][4];

strcpy(arr,"you");

strcpy(arr[1],"me");

arr[0][3]='&';

printf("%s\n",arr);

}

A.you&me B.you C.me D.err

二、填空题

1.当接收用户输入的含空格的字符串时,应使用的函数是gets 。

2.以下程序的输出结果是abc 。

void main()

{

char s[]="abcdef";

s[3]='\0';

printf("%s\n",s);

}

3.下列程序段的运行结果是600 。

char ch[]="600";

int a,s=0;

for(a=0;ch[a]>='0'&&ch[a]<='9';a++)

s=10*s+ch[a]-’0’;

printf("%d",s);

4.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。请填空将程序补充完整。

#include

#include

void main()

{

char a[]="clanguage",t,m;

int i,j,k;

k=strlen(a);

for(i=0;i<=k-2;i+=2)

{

m=i;

for(j=i+2;j<=k;j+=2)

if(a[m]>a[j]) m=j;

if(m!=i)

{ t=a[i]; a[i]=a[m]; a[m]=t; }

}

puts(a);

printf("\n");

}

三、编程题

1.编写程序实现下述功能:输入一字符串,分别统计其中26个字母(大小写不论)的个数,最后输出统计结果。#include

#include

void main()

{

int count[26];

char s[80];

int i,j;

printf("请输入只包含大写字母的字符串:\n");

gets(s);

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

count[i]=0;

i=0;

while(s[i]!='\0')

{

if(s[i]>='a'&&s[i]<='z')

j=s[i]-'a';

if(s[i]>='A'&&s[i]<='Z')

j=s[i]-'A';

count[j]++;

i++;

}

printf("26个字母出现的次数依次是:\n");

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

printf("%3d",count[i]);

printf("\n");

}

2.编写程序实现下述功能:从键盘输入两个字符串,然后在第一个字符串中的最大字符后面插入第二个字符串。

#include

#include

void main()

{

char str1[80],str2[40];

int i,pos,length;

char max;

printf("请输入第一个字符串(长度小于40):\n");

gets(str1);

printf("请输入第二个字符串(长度小于40):\n");

gets(str2);

length=strlen(str2);

i=0;

max=str1[0];

pos=0;

for(i=1;str1[i]!='\0';i++)

if(str1[i]>max)

{

max=str1[i];

pos=i;

}

while(i>pos)

{

str1[i+length]=str1[i];

i--;

}

for(i=0;i

{

str1[pos+1+i]=str2[i];

}

puts(str1);

}

3.编写程序实现下述功能:将下列商品名称存入二维数组list,然后从键盘输入一个商品名称,在list中查找这一名称,若找到,输出其在list中第一次出现的位置(下标值),否则输出“未找到”。

商品名称如下:

pen pencil pen ruler pencil pen ruler note pen b ook

#include

#include

void main()

{

char

list[10][20]={"pen","pencil","pen","ruler","pencil","pen","ruler","note","pen","book"};

char name[20];

int i;

printf("请输入商品名称:\n");

gets(name);

i=0;

while(i<10)

{

if(strcmp(name,list[i])==0)

break;

i++;

}

if(i<10)

printf("在第%d个位置\n",i+1);

else

printf("没找到");

}

C语言习题集

1、将一元二次方程的求根公式(-b+判断式的平方根)/(2a)转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun 函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。 #include #include double fun(double a,double b,double c) { double x1=0.0; //--ksstart (注释不能删除)— //考生代码从此开始编写 x1 = (-b+sqrt(b*b-4*a*c))/(2*a); //--ksend--- return x1; } main() { //求一个根 double a=0.0,b=0.0,c=0.0,x1=0.0; int n=0; printf("The a,b,c:"); scanf("%lf %lf %lf",&a,&b,&c); x1=fun(a,b,c); printf("The x1=%lf:\n",x1); } 2、函数 fun 的功能是: 将两个两位数的正整数 a、b 合并形成一个整数放在 c 中。合并的方式是: 将 a 数的十位和个位数依次放在 c 数的个位和百位上, b 数的十位和个位数依次放在 c 数的十位和千位上。 例如, 当 a=45, b=12, 调用该函数后, c=2514 。 注意: 部分源程序存在文件 PROG1.C 中。数据文件 bc.in 中的数据不得修改。请勿改动主函数main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include #include long fun(int a, int b) { long c=0; //--ksstart(注释不能删除)— //考生代码从此开始编写 int c1,c2,c3,c4; c1 = b%10; c2 = a%10; c3 = b/10;

c语言第五章习题答案

第一题: 1. 从键盘输入10个数,求和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;} printf("s=%d\n",s ); } 2. 从键盘输入10个数,求平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;}

ave=s/10; printf("s=%d,ave=%d\n",s ,ave ); } 3. 从键盘输入10个数,求偶数的和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) s+=x;} printf("s=%d\n",s ); } 4. 从键盘输入10个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0;

for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) {s+=x;k++;} } ave=s/k; printf("s=%d,ave=%d\n",s,ave ); } 5. 从键盘输入n个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0; int n; scanf("%d",&n); for(i=0;i

c语言习题.doc

1.C语言中,int型数据在计算机内部是由()表示的。 答:int型数据在计算机内部是由16位补码表示的。 2.下列可以作为C语言用户标识符的是()。 A) _123 B) a1b2c3 C) int D) 123abc 答:A)和B) C语言标识符必须是以英文字母(a到z)、或者下划线_开头的字符串。字符串中只能包含英文字母、下划线和数字(0到9)。但字符串不能是C语言中的32个保留字(例如int,short,long,unsigned,float,char,if,switch,for,while等)。 3.在C语言中,如果下面的变量都是int类型,则输出的结果是()。 sum=pad=5,pAd=sum++,pAd++,++pAd; printf("%d\n",pad); 答:输出结果是5。 因为C语言是字母大小写敏感的,也就是说区分大小写字母。pad和pAd是两个不同的变量。4.以下程序的输出结果是( )。 #include main() { printf("%d\n",NULL); } 答:0 因为stdio.h头文件中NULL的定义如下: #define NULL 0 5.下面程序的输出是()。 main() { int x=10,y=3; printf("%d\n",y=x/y); } 答:3 因为两个同类型的数据作算术运算,其结果仍为该类型。即整数除以整数,商仍为整数。 10/3的商为3。 6.下面程序的输出是()。 main() { int x=023; printf("%d\n",--x); } 答:18 因为023是一个八进制数,表达式--x的值为022,按照%d带符号的十进制数输出,结果为18。 注意:023是八进制数;23是十进制数;0x23是十六进制数。 7.在C语言中,不正确的int类型的常数是()。 A)32768 B)0 C)037 D)0xAF 答:A) 8.执行下面程序中的输出语句后a的值是()。

c语言程序设计课后习题答案 第五章

/*练习5-3*/ #include int prime(int m) { int i; for(i=2;i<=m-1;i++) if(m%i==0) break; if(i==m) return 1; else return 2; } main() { int i,m,n,sum=0,a=0; printf("enter m and n:(1<=m<=n<=500)\n"); scanf("%d",&m); scanf("%d",&n); for(i=m;i<=n;i++) { if(prime(i)==1) sum=sum+i; a=a+1; } printf("之间的素数和为:%d\n",sum); printf("之间的素数个数为:%d\n",a); } /*习题5.1*/ #include int fn(int a,int n) { int i,sum=0,m=1,c; for(i=1;i<=n;i++) { sum=sum+m; m=m*10; } c=sum*a; return c; }

main() { int a,n,i,x,y=0; printf("enter a and n:\n"); scanf("%d",&a); scanf("%d",&n); for(i=1;i<=n;i++) { x=fn(a,i); y=y+x; } printf("y=%d\n",y); } /*习题5.2*/ #include int countdigit(int number,int digit) { int sum=0; while(number>0) { if(number%10==digit) sum=sum+1; number=number/10; } return sum; } main() { int number,y; printf("enter a number:\n"); scanf("%d",&number); y=countdigit(number,2); printf("y=%d\n",y); }

C语言预习及课后习题(参考答案1-5)

第一章C语言概述 课前预习题 1.函数 2.main()函数3.单行注释、块注释、A 参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。 2.C 参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。 3.D 参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5.B 参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a、b、c,判断其根。

第二章数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算2.1、4、8 3.float、double 4.八进制、十进制、十六进制5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12.13.14.4 15.1 16.0 17.9 18.字符、数字、下划线19.'f' 20.21.int型22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A符合16位PC机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。 4.A 参考分析:是关键字的有:char、case、while。 5.B 参考分析:不是关键字的:include、scanf、type 6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。 8.A 参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 9.D 参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常

C语言例题经典

51.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变,请编程。 #include void main() { char ch; ch=getchar(); if ((ch>=65)&&(ch<=90)) ch=ch+32; else if ((ch>=97)&&(ch<=122)) ch=ch-32; printf("%c\n",ch); } 52.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。 y=x*(x+2),2 void main() { float x,y; printf("输入X值:"); scanf("%f",&x); if (x<=-1) { y=x-1; printf ("Y=%6.2f\n",y); } else if (x<=2) { y=2*x; printf ("Y=%6.2f\n",y); } else if (x<=10) { y=x*(x+2); printf ("Y=%6.2f\n",y); } else printf("取值范围出错\n"); } 53.已知x和y存在下列对应关系,要求对输入的每个x值,计算出y值,请编程。 y=0,x=a||x=-a; y=sqrt(a*a-x*x), -aa. #include #include void main() { float x,y,a; printf("输入A值[A>0]:"); scanf("%f",&a); printf("输入X值:"); scanf("%f",&x); if ((x==a)||(x==-a)) y=0; else if ((x-a)) y=sqrt(a*a-x*x); else if ((x<-a)||(x>a)) y=x;

c语言程序设计课后习题答案高等教育出版社

#include<> main() { float x=,y=,z=; printf("x=%f\n",x); printf("y=%f\n",y); printf("z=%f\n",z); } (1) #include<> main() { int a=12,b=3; float x=,y=; printf("%f\n",(float)(a*b)/2); printf("%d\n",(int)x%(int)y); } (2) #include<> main() { int x=32,y=81,p,q; p=x++; q=--y; printf("%d %d\n",p,q); printf("%d %d\n",x,y); } #include<> main() { int x,b0,b1,b2,s; printf("Inputx:"); scanf("%d",&x); b2=x/100; printf("骰子出现 2 printf("骰子出现 3 printf("骰子出现 4 printf("骰子出现 5 printf("骰子出现 6

} (1) void Swap(int *x,int *y) { int *pTemp;.\n"); else if(strcmp(userInput,password)<0) printf("Invalid password!user inputpassword...\n"); return 0; } #include<> #define N 24 unsigned int CountLetter(char str[]); int main() { char a[N]; printf("Input a letter:\n"); gets(a); printf("The length of the letter is:%d\n",CountLetter(a)); return 0; } unsigned int CountLetter(char str[]) { char *p=str; int c=0,flag=0; while(*p!='\0') { if(*p!=' ') flag=1; else if(flag==1) { c++; flag=0; } p++; } return c+1; } #include<>

C语言习题及参考答案

C语言习题集 习题一 一.填空题 1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。因此,( 函数) 是C程序的基本单位。 2.C程序注释是由( /*) 和( */ ) 所界定的文字信息组成的。3.函数体一般包括( 变量声明) 和( 语句) 。 二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。【错】 2.main函数必须写在一个C程序的最前面。【错】 3.一个C程序可以包含若干的函数。【对】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【对】 5.C程序的注释只能是一行。【错】 6.C程序的注释不能是中文文字信息。【错】 8.可以使用Visual C++ 6.来编译和连接一个C程序。【对】 9.可以使用Visual C++ 6.来运行一个C程序。【对】 10.可以使用Visual C++ 6.来实时调试(即动态调试)一个C程序。【对】三.简答题 1.写出一个C程序的基本结构。 2.简要叙述使用Visual C++ 6.0编译和运行一个程序的步骤。 四.编程题 1.提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。 2.提高题:试编写一个C程序,输出如下信息。 ********************** *** @ @ *** *** @ *** ********************** 试试看,可以输出其他组合图案吗?

习题二 一.选择题 1、合法的字符常量是(ACD)。 A)…\t?B) “A” C)…a?D)?\x32? 2、合法的字符常量是( D) 。 A)…\084?B) …\84? C)…ab?D)?\x43? 3、(B)是C语言提供的合法的数据类型关键字。 A)Float B)signed C)integer D)Char 4、在以下各组标识符中,合法的标识符是((4))。 (1)A)B01 B)table_1 C)0_t D)k% (2)A)Fast_ B)void C)pbl D) (3)A)xy_ B)longdouble C)*p D)CHAR ( 4 ) A) sj B) Int C)_xy D)w_y23 5、属于合法的C语言长整型常量的是(BD)。 A)5876273 B)0L C)2E10 D)(long)5876273 6、下面选项中,不是合法整型常量的是(B )。 A)160 B)-0xcdg C)-01 D)-0x48a 7、判断int x = 0xaffbc;x的结果是(D)。 A)赋值非法B)溢出C)为affb D)为affbc 8、下面选项中,均是合法浮点数的是(B)。 A)+1e+1 B)-.60 C)123e D)-e3 A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4 A)03e2 B)-8e5 C)+2e-1 D)5.e-0 9、在C语言中,要求参加运算的数必须时整数的运算符是(C)。 A)/ B)* C)% D) = 10、在C语言中,字符型数据在内存中以(D)形式存放。 A)原码B)BCD码C)反码D)ASCII码 11、下列语句中,符合语法的赋值语句是(C)。 A)a=7+b+c=a+7;B)a=7+b++=a+7; C)a=(7+b,b++,a+7);D)a=7+b,c=a+7; 12、是非法的C语言转义字符(B )。 A)…\b?B)…\0xf? C)…\037? D)… \?? 13、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,( B )是正确的。A)语法错误B)f为5.0 C)f为0.0 D)f为2.0 14、与代数式(x*y)/(u*v) 不等价的C语言表达式是(A )。 A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y 15、在C语言中,数字029是一个(D)。

C语言课后练习题答案第五章

作业四:简单程序设计 1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B);如果字符串长度小于5,则输出按方式(C)。(5分)(重要) A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 2.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为(D)。(5分) main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z);要和这里一样 printf(“x+y+z=%d\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 3.根据下面的程序及数据的输入和输出形式,程序中输入数据的正确形式应该为(WXY)。(5分) main() { char ch1,ch2,ch3;

scanf(“%c%c%c”,&ch1,&ch2,&ch3); printf(“%c%c%c”,ch1,ch2,ch3); } 4.以下的输出结果是(x=1,y=2*sum*=3 10 Squard is : 100)。(5分) main() { int x=1,y=2; printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y); printf(“10 Squared is : %d\n”,10*10); } 5.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2 =’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:(20分) a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.6 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=’a’ or 97(ascll) c2=’b’ or 98(ascll) main()

C语言练习题集(带答案解析)

精品文档 1. ( A )是构成C 语言程序的基本单位。 A 、函数 B 、过程 C 、子程序 D 、子例程 2. C 语言程序从 ____ C ________ 开始执行。 A ) 程序中第一条可执行语句 B )程序中第一个函数 C )程序中的main 函数 D )包含文件中的第一个函数 3、以下说法中正确的是( C )。 A 、 C 语言程序总是从第一个定义的函数开始执行 B 、 在 C 语言程序中,要调用的函数必须在 main ()函数中定义 C 、 C 语言程序总是从 main ()函数开始执行 D 、 C 语言程序中的 main ()函数必须放在程序的开始部分 4. 下列关于C 语言 的说法错误的是( B ) 。 A ) C 程序的工作过程是编辑、编译、连接、运行 B ) C 语言不区分大小写。 C ) C 程序的三种基本结构是顺序、选择、循环 D ) C 程序从main 函数开始执行 5. 下列正确的标识符是(C )。 A. -a1 B.a[i] C.a2_i 6. 下列C 语言用户标识符中合法的是( B )。 A) 3ax B)x C)case D)-e2 E)u nion 7. 下列四组选项中,正确的 C 语言标识符是 (C )。 A ) %x B ) a+b C ) a123 D ) 8、 下列四组字符串中都可以用作 A 、print _3d db8 aBc B C 、str_1 Cpp pow while D 9. C 语言中的简单数据类型包括( A 、整型、实型、逻辑型 C 、整型、字符型、逻辑型 C 语言程序中的标识符的是( A ) 、I\am one_half start$it 3pai 、Pxq My->book line# His.age D )。 B 、整型、实型、逻辑型、字符型 D 、整型、实型、字符型 10. 在C 语言程序中,表达式 5%2的结果是—C_ A)2.5 B)2 C)1 D)3 11. 如果int a=3,b=4 ;则条件表达式"a

C语言第五章习题带答案更新Word版

练习5-1答案 一、选择题 1.合法的数组说明语句是( B )。 A.int a[]="string"; B.int a[]={0,1,2,3,4,5}; C.char a="string"; D.char a[5]={'0', '1', '2', '3', '4', '5'}; 2.以下对一维整型数组a的说明正确的是( D )。 A.int a(10); B.int n=10, a[n]; C.int n; D.#define SIZE 10 scanf("%d", &n); int a[SIZE]; int a[n]; 3.已知:int a[10];,则对a数组元素的正确引用是( D )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 4.以下对一维数组a进行正确初始化的语句是( C )。 A.int a[10]=(0, 0, 0, 0, 0); B.int a[10]={}; C.int a[]={0}; D.int a[2]={10, 9, 8}; 5.对以下说明语句的正确理解是( B )。 int a[10]={6, 7, 8, 9, 10}; A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10] D.因为数组长度与初值的个数不相同,所以此语句不正确 二、填空题 6.求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。 例如:满足题意要求的数有:N=1,11*11=121;N=111,111*111=12321。 #include main() {int m[16], n, i, t, count=0; long a, k; printf("Result is:\n"); for (n=10; n<200; n++) { k=0; t=1; a=n*n; for (i=1; a!=0; i++) { ①; a/=10; }

C语言习题

练习题 2015-2016(2)重修) 判断 1. C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .BAK 的文件。( ) 2.在 C 程序中, APH 和 aph 代表不同的变量。( ) 3.C语言中数据类型只有整型、实型和字符型。( ) 4.int i=20;switch(i/10){case 2:printf("A");case 1:printf("B");}的输出结果为A。() 5.Break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。() 6.函数strlen("ASDFG\n")的值是7。() 7.结构体类型只有一种。() 8.构成数组的各个元素可以有不同的数据类型。( ) 9.C语言中字符串的结束符是'\0'。( ) 10.数组名代表数组的首地址。( ) 11.函数的递归调用不过是一个函数直接或间接地调用它自身。() 12.通过return语句,函数可以带回一个或一个以上的返回值。() 13.Char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。() 14.若有定义:char *p(char a[10]);则p是函数名。() 15.用fopen("file","r+");打开的文件"file"可以进行修改。() C概述,数据类型,运算符,表达式,选择结构 1.以下叙述中正确的是()。 A.程序设计的任务就是编写程序代码并上机调试 B.程序设计的任务就是确定所用数据结构 C.程序设计的任务就是确定所用算法 D.以上三种说法都不完整 2. C语言源程序的基本单位是()。 A.过程 B.函数 C.子程序 D.标识符 3. C语言规定,在一个源程序中main函数的位置()。 A.必须在最开始 B.必须在最后 C.必须在预处理命令的后面 D.可以在其他函数之前或之后 4.以下叙述中正确的是()。 A.C语言系统以函数为单位编译源程序 B.main函数必须放在程序开始 C.用户定义的函数可以被一个或多个函数调用任意多次 D.在一个函数体内可以定义另外一个函数 5. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符() A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母,数字和下划线中任一种字符 6.下面四个选项中,均是合法转义字符的选项是() A.'\'' '\\' '\n' B.'\' '\017' '\"' C.'\018' '\f' 'xab' D.'\\0' '\101' 'xlf' 7.下面四个选项中,均是不合法的用户标识符的选项是() A.A P_0 do B.float la0 _A C.b-a goto int D._123 temp INT 8.已知有声明 char c='1';int x=300;float t=35000;double d=3.1234567e10; ,则以下表达式求值 时除( )外其结果都可能是不准确的。 A.x=t/c B.t=d/x C.t=d/le5f D.t=x+c 9.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为()。 A.3 B.3.0 C.3.89 D.4.0 10.已知有声明"int a=3,b=4,c=5;",以下表达式中值为0的是()。

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

c语言习题及答案

第一章1.1 题目内容: 使用printf()在屏幕上输出hello world! 提示: #include int main() { printf("hello world!\n"); return 0; } 输入格式: 无 输出格式: 输出提示信息:"hello world!\n" 输入样例: 输出样例: hello world! #include int main() { printf("hello world!\n"); return 0; } 1.2 在屏幕上输出多行信息(3分) 题目内容: 使用printf()函数在屏幕上输出以下多行信息: hello world! hello hit! hello everyone! 提示: 在printf()函数中转义字符‘\n’表示换行。

输入格式: 输出格式: 输出提示信息: "hello world!\n" "hello hit!\n" "hello everyone!\n" 输入样例: 输出样例: hello world! hello hit! hello everyone! #include int main() { printf("hello world!\n"); printf("hello hit!\n"); printf("hello everyone!\n"); return 0; } 1.3 计算半圆弧的周长及半圆面积(3分) 题目内容: 编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。要求半径r和必须利用宏常量表示。输入格式: 无 输出格式: 半圆的面积输出格式: "Area=%f\n" 半圆弧的周长输出格式: "circumference=%f\n" 输入样例: 输出样例: Area=44.123632 circumference=16.650427 #include #define PI 3.14159 #define R 5.3 int main() { printf("Area=%f\n", R*R*PI/2); printf("circumference=%f\n", 2*R*PI/2); return 0; }

C语言例题

习题4.12 编程计算1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的值。 #include main() { long term = 1,sum = 0; int i; for (i = 1; i <= 10; i++) { term = term * i; sum = sum + term; } printf("1!+2!+...+10! = %ld \n", sum); } 习题7.6 从键盘上任意输入十个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组中的位置。 #include int FindMax(int num[], int n, int *pMaxPos); int FindMin(int num[], int n, int *pMinPos); main() { int num[10], maxV alue, maxPos, minV alue, minPos, i; printf("Input 10 numbers:\n "); for (i=0; i<10; i++) { scanf("%d", &num[i]); /* 输入10个数*/ } maxV alue = FindMax(num, 10, &maxPos); /* 找最大值及其所在下标位置*/ minV alue = FindMin(num, 10, &minPos); /* 找最小值及其所在下标位置*/ printf("Max=%d, Position=%d, Min=%d, Position=%d\n", maxV alue, maxPos, minV alue, minPos); } /* 函数功能:求n个数中的最大值及其所在下标位置 函数入口参数:整型数组num,存储n个整数 整型变量n,表示数组元素个数 函数出口参数:整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置函数返回值:最大值 */ int FindMax(int num[], int n, int *pMaxPos) { int i, max; max = num[0]; /*假设num[0]为最大*/

c语言例题

1.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。 7.求1!+2!+3!+……+20!,将结果输出。 #include void main() { float s=0,t=1; int n; for(n=1;n<=20;n++) { t=t*n; s=s+t; } printf("1!+2!+3!+……+20!=%e\n",s); } 2.求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。 #include void main() { float sum=1.0,t,s=1; int i; for(i=1;i<=100;i++) { t=s/i; sum=sum+t; s=-s; } printf("1-1/2+1/3-1/4+……+1/99-1/100=%5.4f\n",sum); } 3.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。 #include #define N 4 struct student { char num[3]; char name[4]; float score[2]; float avr; }

stu[N]; void main() { int i,j; float sum,average; for(i=0;i void main() { char str1[20],str2[20]; int i=0,j=0;

C语言例题及参考答案

试卷编号:537 所属语言:C语言 试卷方案:期末练习1 试卷总分:100分 共有题型:4种 一、单选共20题(共计40分) 第1题(2.0分)题号:5203 难度:易第99章 C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为(exe). A:.c B:.obj C:.exe D:.bas 答案:B 第2题(2.0分)题号:5288 难度:易第2章 若变量已正确定义,执行语句scanf("%d,%d,%d ",&k1,&k2,&k3);时,()是正确的输入. A:2030,40 B:20 30 40 C:20, 30 40 D:20,30,40 答案:D 第3题(2.0分)题号:5245 难度:中第2章 以下标识符中,不能作为合法的C用户定义标识符的是(). A:putchar B:_double C:_123 D:INT 答案:A 第4题(2.0分)题号:5206 难度:中第1章 能将高级语言编写的源程序转换为目标程序的是().

A:链接程序 B:解释程序 C:编译程序 D:编辑程序 答案:C 第5题(2.0分)题号:5338 难度:较难第3章若int a=3,则执行完表达式a-=a+=a*a后,a的值是(). A:-15 B:-9 C:-3 D:0 答案:D 第6题(2.0分)题号:5306 难度:中第3章判断char型变量cl是否为小写字母的正确表达式是(). A:'a'<=cl<='z' B:(cl>=a)&&(cl<=z) C:('a'>=cl)||('z'<=cl) D:(cl>='a')&&(cl<='z') 答案:D 第7题(2.0分)题号:5379 难度:中第4章下列语句的结果是(). main() { int j; j=3; printf("%d,",++j); printf("%d",j++); } A:3,3 B:3,4 C:4,3 D:4,4 答案:D

C程序设计第五章课后习题答案

循环结构程序设计 P115 5.1 用while计算1至100的合. #include int main() { int i=1,sum=0; while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定. { sum=sum+i; i++; } printf("The sum is %d .\n",sum); return 0; } P117 5.2 用do-while来做1至100的合. #include int main() { int i=1,sum=0; do// do-while可以做的事,用while都可以做到. { //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行. sum=sum+i; i++; }while(i<=100); printf("The sum is %d .\n",sum); return 0; } P118 5.3 比较do-while与while的差别. #include

{ int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0. while(i<=10) { sum=sum+i; i++; } printf("The sum of 1-10 is %d .\n",sum); return 0; } #include int main() { int i,sum=0; printf("Please input a number :"); scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11. do { sum=sum+i; i++; }while(i<=10); //此重点在于理解二者的差别. printf("The sum of 1-10 is %d .\n",sum); return 0; } P126 5.4 break的例子. #include int main() { int i,b=0,a,c; for(i=0;i<=1000;i++) { printf("Please input amount :"); //循环体内套有输出语句以及跳出语句. scanf("%d",&a); b=b+a; if(b>=100)

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