文档库 最新最全的文档下载
当前位置:文档库 › C语言2014版习题答案完整版 (1)

C语言2014版习题答案完整版 (1)

C语言2014版习题答案完整版 (1)
C语言2014版习题答案完整版 (1)

C语言习题答案

习题1(参考答案)

1.程序与算法的概念及二者的区别是什么?

程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。

算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解题的步骤。

算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。

2.简述程序设计语言发展的过程

程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。

3.简述高级程序设计语言中面向过程与面向对象的概念。

“面向过程”是一种以过程为中心的编程思想。首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。

“面向对象”是一种以事物为中心的编程思想。面向对象的方法主要是将事物对象化,对象包括属性与行为。

面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。

4.C语言程序的特点是什么?

(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。

(2)C语言运算符丰富,共有45个标准运算符,具有很强的表达式功能,同一功能表达式往往可以采用多种形式来实现。

(3)数据类型丰富。C语言的数据类型有整型、实型、字符型、数组类型、结构类型、共用类型和指针类型,而且还可以用它们来组成更复杂的数据结构,加之C语言提供了功能强大的控制结构,因而使用C语言能非常方便地进行结构化和模块化程序设计,适合于大型程序的编写、调试。

(4)用C语言可直接访问物理地址,能进行二进制位运算等操作,即可直接同机器硬件打交道。它具有“高级语言”和“低级语言”的双重特征,既能用于系统软件程序设计,又能用于通用软件程序设计。

(5)C语言生成的目标代码质量高、程序执行速度快。一般只比用汇编语言生成的目标代码的效率低20%左右。

(6)可移植性好。

5.源程序执行过程中,有哪些步骤?

C语言源程序的执行要经过:编辑、编译、链接、运行等步骤。

6.简述MATLAB的主要应用领域有哪些?

MATLAB软件是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司开发的商业数学软件,主要包括MA TLAB和Simulink两大部分。它和Mathematica、Maple并称为三大数学软件。MA TLAB软件可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域,代表了当今国际科学计算软件的先进水平。

1.计算的本质是什么?

计算的本质就是基于规则的符号串变换。

2.三大科学思维是指什么?

三大科学思维是:理论思维、实验思维与计算思维

3.什么是计算思维?计算思维的基本特征有哪些?

计算思维是指运用计算机科学的思想、方法和技术进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。它属于三大科学思维(理论思维、实验思维与计算思维)之一,不仅仅属于计算机科学家,应当是每个人的基本技能,等同3R (Reading、wRiting、aRithmetic)。

从计算科学的角度来看,计算思维包括6个方面的特征:抽象性、数字化、构造性、系统化、虚拟化和网络化。

4.什么是算法?算法的基本特征有哪些?

算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解题的步骤。

算法的基本特征有:有穷性、确定性、可行性、有0个或多个输入、有一个或多个输出。

5.算法的复杂度分为哪两种?

算法的复杂度分为时间复杂度和空间复杂度两种。

6.什么是程序?程序与算法的区别是什么?

程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。

算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地讲,就是计算机解题的步骤。

算法与程序的区别:计算机程序是算法的一个实例,同一个算法可以用不同的计算机语言来表达。

7.简述程序设计语言发展的过程。

程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,

面对象的编程语言为第四代。

8.程序执行过程中,有哪些基本步骤?

C语言源程序的执行要经过:编辑、编译、链接、运行等步骤。

习题2(参考答案)

一、选择题

二、填空题

习题 3 (参考答案)

1.编程实现:用字符输入/输出函数输入3个字符,将它们反向输出。

参考代码(尽量运用本章所学知识)

#include

main( )

{ char c1,c2,c3;

c1=getchar(); c2=getchar(); c3=getchar();

putchar(c3); putchar(c2); putchar(c1);

}

2.编程实现:用格式输入/输出函数输入3个字符,将它们反向输出并输出它们的ASCII值。

参考代码(尽量运用本章所学知识)

#include

main( )

{ char c1,c2,c3;

scanf ("%c%c%c", &c1, &c2, &c3) ;

printf("%c %d,%c %d,%c %d ", c3,c3,c2,c2,c1,c1) ;

}

3.变量k为float 类型,调用函数:

scanf("%d", &k);

不能使变量k得到正确数值的原因是:

scanf("%d", &k);中的格式控制类型与变量k的定义类型不匹配,应将%d改为%f.

4. (略)

习题4答案

一选择题

1-20 DBDCA CBDDA ACABC BCBBC

二、写出下列程序的运行结果

1. z=36

2. 20 0

3. 12

4. 48,48

5. 13

6. 02

三编程题(参考答案)

1.输入4个整数a,b,c,d,编写程序,将它们按从大到小顺序输出。

#include

main()

{ int a,b,c,d,t;

scanf("%d%d%d%d",&a,&b,&c,&d);

if(a

if(a

if(a

if(b

if(b

if(c

printf("%4d%4d%4d%4d",a,b,c,d);

}

2.据所输入的3条边长值,判断它们能否构成三角形,如能构成,再判断是等腰三角形、直角三角形还是一般三角形?

源程序:

#include

#include "math.h"

main()

{float a,b,c,s,area;

scanf("%f%f%f",&a,&b,&c);

if((a+b>c)&&(a+c>b)&&(b+c>a)&&(fabs(a-b)

{

if(a==b&&b==c)

printf("等边三角形");

else if(a==b||b==c||a==c)

printf("等腰三角形");

else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))

printf("直角三角形");

else printf("一般三角形");

}

else printf("不能组成三角形");

}

3.输入一个整数,如果能被3,4,5同时整除,则输出“YES”,否则输出“NO”。

#include

main()

{ int t,flag;

scanf("%d",&t);

if(t%3==0&&t%4==0&&t%5==0)

printf("YES");

else

printf("NO");

}

4.输入年号,判断是否为闰年。判别闰年的条件是:能被4整除但不能被100整除,或者能被400整除。

#include

main()

{ int year;

printf("input the year:");

scanf("%d",&year);

if(year%4==0&&year%100!=0||year%400==0)

printf(" %d is leap year\n",year);

else

printf(" %d is't leap year\n",year);

}

5.编写程序。根据以下函数关系,对输入的每个x值进行计算,并输出相应的y值。

#include

main()

{ double x,y;

scanf("%lf",&x);

if(x>10) y=3*x+10;

else if(x>1) y=x*x+2*x;

else y=x*x-3*x+10;

printf(" %lf \n",y);

}

习题5答案

一、选择题

1-10 CDABC DABDC

11-20 DDDBD BACDC (注:17题n- -改为n++后答案为A )

二、写出下列程序的运行结果 1. 6420 2. 2 0

3. 5

4. ACEG

5. ###

6. 2,4,6,8,10

7. 46.0

8. 8 5 2

9. asDhEF

10. 12,72

三、编程题(参考答案) 1.利用近似公式...

7

151311+-+-

=4

π

求π的值,直到最后一项的绝对值小于10-6

为止。

#include

#include main()

{ double pi=0,i=1,j=1,k; do {

k=i/j; pi=pi+k; i=-i; j=j+2;

}while (fabs(k)>1.0e-6); printf("pi is %lf",4*pi); }

2.输入一行字符,分别统计出其中英文字母、数字、空格的个数。

#include main() { char t;

int n1=0,n2=0,n3=0; do

{scanf("%c",&t);

if(t=='\n')break; else

{if((t>='A'&&t<='Z')||(t>='a'&&t<='z')) n1++;

if(t==' ')n2++;

if(t>='0'&&t<='9') n3++;

}

}while(1);

printf("字符个数为:%d ,空格个数为:%d ,数字个数为:%d",n1,n2,n3);

}

3.从3个红球、5个白球、6个黑球中任意取出6个球,且其中必须有白球,编程输出所有

可能的组合。

#include

main()

{

int i,j,k;

printf("\n hong bai hei\n");

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

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

{ k=6-i-j;

if(k>=0) printf(" %3d %3d %3d\n",i,j,k);

}

}

4.如果一个数等于其所有真因子(不包括该数本身)之和,则该数为完数。例如:6的真因子有1、2、3,且6=1+2+3,故6为完数。求[2,1000]内的:

(1)最大的完数;(2)完数数目。

#include

main()

{ int a,i,m,number=0,max=0;

for(a=1;a<=1000;a++)

{ m=0;

for(i=1;i<=a/2;i++)

if(a%i==0) m=m+i;

if(m==a) { number++, max=m;}

}

printf("number is %d, max is %d\n", number, max);

}

习题6答案

一、选择题

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

8.B 9.B 10.C 11.B 12.B 13.A 14.B

15.C 16.C 17.C 18.D 19.A 20.B 21.C

22.B 23.C 24.A 25.C 26.D 27.C 28.D

二、写出下列程序的运行结果

1.7 2.t=7531 3.1 3 6 4.8,17 5.5 6 6.8,8 7.3 6 9 12 8.10 9.39,18

10.64 54 11.-20 12.15 13.2 14.y=923

三、编程题(以下各题均用函数实现)

1.超级素数:一个素数依次从低位去掉一位、两位……若所得的数依然是素数,如239就是超级素数。试求100~9999之内:

(1)超级素数的个数;

(2)所有超级素数之和;

(3)最大的超级素数。

解:(1)spn=30(2)sps=75548(3)spm=7393

#include

#include

main()

{ int i,s=0,k=0,m,max=100;

for(i=9999;i>=100;i--)

{ m=i;

while(m>1)

if(fun(m))m=m/10;

else break;

if(m<=0)

{

if(max

k++;

s=s+i;

}

}

printf("超级素数的个数为:%5d,所有超级素数之和为:%5d,最大的超级素数为%5d\n",k,s,max);

}

int fun(int n)

{

int k,i;

k=sqrt(n);

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

if(n%i==0)break;

if(i>=k+1)return 1;

else return 0;

}

2.其平方等于某两个整数平方和的正整数称为弦数,例如因52=32+42,故5是弦数,求(121,130)这间的弦数个数以及最大和最小的弦数。

解:n=4 max=130 min=122

参考程序1(用函数方法实现):

#include

main()

{

int k,maxnum,minnum;

k=count(121,130);

maxnum=max(121,130);

minnum=min(121,130);

printf("弦数的个数为:%d,最大的弦数为:%d,最小的弦数为:%d\n",k,maxnum,minnum);

}

int count(int m,int n)

{ int i,j,k,t=0,flag;

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

{ flag=0;

for(j=1;j

for(k=j;k

if(i*i==j*j+k*k)

{

flag=1;

printf("%4d,%4d,%4d\n",j,k,i);//显示出不重复的弦数的组合情况

}

if(flag==1)t++;

}

return t;

}

int min(int m,int n)

{ int i,j,k,t=0;

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

for(j=1;j

for(k=j;k

if(i*i==j*j+k*k)

{

printf("最小的弦数为:%4d\n",i);

return i;

}

}

int max(int m,int n)

{ int i,j,k,t=0;

for(i=n;i>=m;i--)

for(j=1;j

for(k=j;k

if(i*i==j*j+k*k)

{

printf("最大的弦数为:%4d\n",i);

return i;

}

}

3.有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数。

解:384

#include

main( )

{

int i,t;

t=fun(8);

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

t=t*2;

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

}

int fun(int m)

{

int i,j,n=1,sum;

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

{ sum=i;

n=i;

for(j=1;j

{ n=n*2;

sum=sum+n;

}

if(sum==765) break;

}

return i;

}

4.编写程序,求10

1!n

的结果。

解:4037913

参考程序1:

#include

main( )

{

int i;

long s=0;

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

s=s+fun(i);

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

}

long fun(int n) {

int j; long t=1;

for(j=1;j<=n;j++) t=t*j; return t; }

参考程序2(递归算法): #include main( ) {

int i; long s=0;

for(i=1;i<=10;i++) s=s+fun(i); printf("s=%ld\n",s); }

long fun(int n) {

long t;

if(n==1)t=1;

else t=n*fun(n-1); return t; }

5.已知y =

(,)

( 2.3,)( 3.2,3)

f x n f x n f x n ++-+,其中,f (x , n ) = 1 - x 2 / 2! + x 4 / 4! - …

(-1)n x 2n / (2n )!(n ≥0),当x = 5.6,n = 7时,求y 的值。 解:0.007802

#include

double fun(double x,int n) {

int i,t=1,m=1;

double s=1.0,w=1.0; for(i=1;i<=2*n;i++) { w=w*x; t=t*i; if(i%2==0) { m=-m;s=s+m*w/t;} }

return s;

main()

{

double x=5.6;

int n=7;

double p,q,t,s;

p=fun(x,n);

q=fun(x+2.3,n);

t=fun(x-3.2,n+3);

s=p/(q+t);

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

}

6.编写程序,求三个数的最小公倍数。

#include

int fun(int x,int y,int z)

{ int j,t,m,n;

j=1;

t=j%x;

m=j%y;

n=j%z;

while(t!=0||m!=0||n!=0)

{ j=j+1;

t=j%x;

m=j%y;

n=j%z;

}

return j;

}

main()

{

int x1,x2,x3,j;

printf("Input x1 x2 x3: ");

scanf("%d%d%d",&x1,&x2,&x3);

printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);

j=fun(x1,x2,x3);

printf("The minimal common multiple is: %d\n",j); }

7.已知:

()

()()

2

222

24

13352121

k

S

k k

=????

??-?+

,编写程序,求S的值。

例如,当k为10时,S的值应为:1.533852。#include

double fun(int k)

{

int n;

double s,w,p,q;

n=1;

s=1.0;

while(n<=k)

{ w=2.0*n;

p=w-1.0;

q=w+1.0;

s=s*w*w/p/q;

n++;

}

return s;

}

main()

{

printf("%f\n",fun(10));

}

习题7答案

一、选择题

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

8.C 9.A 10.B 11.C 12.D 13.D 14.C

15.C 16.D 17.D 18.D 19.B 20.B 21.B

22.C 23.A 24.A 25.A 26.D 27.D 28.D 29.C

二、写出下列程序的运行结果

1. 3 6 9 2.4

3.1,2,3,8,7,6,5,4,9,10, 4.7 0

5.572

三、程序填空

1. (1) k (2) -1

2. (1) i-1

3. (1) x[i++]或y[i++] (2)i++

4. (1) ‘a’+h-10 (2)s[i]= ’\0’

5. (1)s[i]!=’\0’(2)s[j++]=s[i]

6. (1)s[j]!=’\0’&& t[k]!=’\0’(2)t[k]==’\0’

四、编程题(每个程序的数据结构均用数组)

1.编写程序:从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中的位置。若该字符不在a中则输出**。

#include

main()

{

char c,a[10]="abcdefghi";

int top,bot,mid;

printf("input c:\n");

scanf("%c",&c);

printf("c=\'%c\'\n",c);

for(top=0,bot=10;top<=bot;)

{

mid=(top+bot)/2;

if(c==a[mid])

{

printf("The position is %d\n",mid+1);

break;

}

else if(c>a[mid]) top=mid+1;

else bot=mid-1;

}

if(top>bot) printf("**\n");

}

2.编写程序:输出某数列的前20项,该数列第1、2项分别为0和1,以后每个奇数编号的项是前两项之和,每个偶数编号的项是前两项之差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出。

#include

#include

main()

{

int x[21],i;

x[1]=0,x[2]=1;

i=3;

do

{

x[i]=x[i-2]+x[i-1];

x[i+1]=fabs((double)(x[i-1]-x[i]));

i=i+2;

}while(i<=20);

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

{

printf("%6d",x[i]);

if(i%4==0) printf("\n");

}

}

3.编写程序:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。

例如:若s所指字符串中的内容为:“ABCDEFG12345”,则最后t所指的数组中的内容应是:“135”。

#include

#include

void fun(char *s,char t[])

{

int i,j=0;

for(i=1;i

if(s[i]%2!=0)t[j++]=s[i];

t[j]='\0';

}

main()

{

char s[100],t[100];

printf("\nPlease enter string s:");

scanf("%s",s);

fun(s,t);

printf("\nThe result is:%s\n",t);

}

4.编写程序:一个自然数平方的末几位与该数相同时,称此数为自同构数。例如,因252=625,故25为自同构数。求出[1,700]之间的:①最大的自同构数;②自同构数数目。

(1)最大的自同构数:625 (2)自同构数数目:7个(1、5、6、25、76、376、625)

#include

main()

{

int i,n,ns,flag,count,r,rs;

static int a[50];

count=0;

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

{

n=i;

ns=i*i;flag=1;

while(n>0&&flag)

{

r=n%10;n=n/10;

rs=ns%10;ns=ns/10;

if(rs!=r) flag=0;

}

if(flag)

{

a[count]=i;count++;

printf("%5d",i);

}

}

printf("\ncount=%d,max=%d\n",count,a[count-1]);

}

5.已知:

f(0) = f(1) = 1

f(2) = 0

f(n) = f(n-1) - 2*f(n-2) + f(n-3) (n>2)

编写程序:求f(0)~f(50)中的最大值。

f(0)到f(50)中的最大值:598325

#include

main()

{

int n;

double f[181],max=0;

f[0]=f[1]=1;f[2]=0;

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

{

f[n]=f[n-1]-2*f[n-2]+f[n-3];

if(max

}

printf("\n max=%.0lf",max);

}

6.编写程序:自然数1~1000按顺时针围成一圈,首先取出1,然后顺时针方向按步长L =50取数(已取出的数不再参加计数),直至所有的数均取完为止,最后一个取出的数是多少?

最后一个取出的数是:630

#include

main()

{

int a[1001],i,s=0,n=1;

for(i=1;i<=1000;i++) a[i]=i;

a[1]=0;

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

{

if(a[i]!=0)

{

s+=1;

if(s==50)

{

n++;

if(n==1000)

{

printf("\n a[%d]=%d",i,a[i]);

break;

}

a[i]=0;s=0;

}

}

if(i==1000) i=0;

}

}

7.编写程序:输出下列格式的杨辉三角形前5行。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

#include

main()

{

int a[10][10],i,j,t,k;

printf("input lines <10:\n");

scanf("%d",&t);

for(i=0;i

{

for(j=0;j

{

printf(" ");

}

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

{

if((i==j)||(j==0)) a[i][j]=1;

else a[i][j]=a[i-1][j-1]+a[i-1][j];

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

}

printf("\n");

}

}

8.若两素数之差为2,则称该两素数为双胞胎数。编写程序,求出[2,300]之内:(1)有多少对双胞胎数;

(2)最大的一对双胞胎数。

(1)最大的一对双胞胎数:281、283 (2)有19对双胞胎

#include

int sushu(int n)

{

int flag=1,i;

for(i=2;i<=n/2;i++)

if(n%i==0){flag=0;break;}

return(flag);

}

main()

{

int i,b,max1=0,max2=0,count=0;

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

{

if(sushu(i))

{

b=i+2;

if(sushu(b))

{

if(i>max1)

{max1=i;max2=b;}

count++;

}

}

}

printf("count=%d\nmax1=%4d,max2=%4d\n",count,max1,max2);

}

9.编写程序:将两个递增的数组a[10] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}和b[10] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}合并成一个数组c[20],并保持递增的顺序。

#include

#define N 10

#define NN 20

main()

{

int a[N]={2,4,6,8,10,12,14,16,18,20},b[N]={1,3,5,7,9,11,13,15,17,19},

c[NN];

int i,j,t,k;

i=0;j=0;t=0;

do

{

if(a[i]

{c[t]=a[i];i++;t++;}

else {c[t]=b[j];j++;t++;}

}while(i

10.请编写程序:建立一个N ×N 的矩阵(N <10)。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,……依次类推。例如,当N = 5,生成的矩阵为:

11

1111222112321122211

111

1????????????????

#include

#define N 7

void fun(int (*a)[N]) { int i,j,k,m; if(N%2==0)m=N/2; else m=N/2+1; for(i=0;i

main() { int x[N][N]={0},i,j; fun(x); printf("\nThe result is:\n"); for(i=0;i

C语言题库及答案

C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。

C语言循环习题答案

循环习题集锦 一.选择题 1.for(i=0;i<10;i++);结束后,i的值是;(10) A 9 B 10 C 11 D 12 2.下面程序的循环次数是:(D) int k=0; while(k<10) {if(k<1) continue; if(k==5) break; k++; } A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10) main() { int s,k; for(s=1,k=2;k<5;k++) s+=k; printf(“%d\n”,s); } A 1 B 9 C 10 D 15 4.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)

for(i=0;i<= ;) printf(“%d\n”,i+=2); A 9 B 10 C 18 D 20 5.运行下面程序:(B) main() { int i=10,j=0; do { j=j+i; i--; }while(i>5); printf(“%d\n”,j); } 输出结果是: A 45 B 40 C 34 D 55 6.运行下面程序 #include “stdio.h” main() { int k=0,a=1; while(k<10) { for( ; ;) { if((k%10)==0)

break; else k--; } k+=11; a+=k; } printf(“%d %d\n”,k,a); } 则输出的结果是(C) A 21 32 B 21 33 C 11 12 D 10 11 7.以下叙述正确的是:(D) A.do---while语句构成的循环不能用其他语句构成的循环来代替。B.do---while语句构成的循环只能用break语句退出。 C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。 D.用do---while语句构成的循环,在while后的表达式为零时结束循环。 8.有如下程序: main() { int x=3; do{

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++;} printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

C语言循环例题

1. //输出a和b之间的所有素数, 10个素数为一行输出 #include #include #include int panDuanSuShu(int x) //判断x是否是素数 { int i,m,flag; //flag为1表示是素数,flag为0表示不是素数 m=(int)sqrt(x); if(x==2) { flag=1;} else { for(i=2;i<=m;i++) { if(x%i==0) { flag=0; break; } } if(i>m) { flag=1; } } return flag; } int shuChuSuShu(int a,int b) { int i,k=0;//i是循环变量,k表示已经输出了k个素数 for(i=a;i<=b;i++) { if(panDuanSuShu(i)==1) { printf("%6d",i); k++; if(k%10==0) { printf("\n");} } } printf("\n"); return k; } int main() { int a,b,t;

while(a<2||b<2) { printf("重新输入n和m:"); scanf("%d%d",&a,&b); } if(a>b) { t=a;a=b;b=t; } printf("%d和%d之间共有%d个素数",a,b,shuChuSuShu(a,b)); printf("\n\n"); return 0; } 2. //用户输入2个数,输出这2个数之间所有的超素数 //超素数(质数)的概念:7193是素数,719是素数,71是素数,7是素数,则7193是素数#include #include #include int isPrime(int n)//判断某数是否是素数 { int i,f,m=(int)sqrt(n); if(n==1) f=0; else { for(i=2;i<=m;i++) { if(n%i==0) break; } if(i>m) f=1; else f=0; } return f; } int supperPrime(int n)//判断某数是否是超素数 { int t=n; while(t>0) { if(isPrime(t)==1) t=t/10; else break; }

(完整版)C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 A. i=100; while (1) { i=i%100+1; if (i==20) break; } B. for (i=1;;i++) sum=sum+1; C. k=0; do { ++k; } while (k<=0); D. s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

C语言函数题库及答案

C语言函数题库及答案 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

第六部分函数 一、单项选择题 1.C语言中的函数返回值的类型是由(D)决定 A.return语句中的表达式B.调用函数的主调函数 C.调用函数时临时D.定义函数时所指定的函数类型 2.下面不正确的描述是(B)。 A.调用函数时,实参可以是表达式 B.调用函数时,实参和形参可以共用内存单元 C.调用函数时,将形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 3.在C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是 (D) A.地址传递B.值传递 C.由实参传递给形参,并由形参传回给实参D.由用户指定传递方式 4.下面的函数调用语句中含有(A)个实参 inta,b,c; intsum(intx1,intx2); …… total=sum((a,b),c); A.2B.3C.4 D.5 5.在C语言中(C) A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义和调用均不可以嵌套 C.函数的定义不可以嵌套,但是函数的调用可以嵌套 D.函数的定义和调用均可以嵌套 6.关于C语言中的return语句正确的是(C) A.只能在主函数中出现 B.在每个函数中都必须出现 C.可以在一个函数中出现多次 D.只能在除主函数之外的函数中出现 7.两个形参中,第一个形参为指针类型、第二个形参为整型,则对函数形参的说明有错误的是(D) (floatx[],intn) (float*x,intn) (floatx[10],intn) (floatx,intn) 8.在C语言中,函数的数据类型是指(A) A.函数返回值的数据类型 B.函数形参的数据类型 C.调用该函数时的实参的数据类型 D.任意指定的数据类型 9.已知如下定义的函数: fun1(a) {printf("\n%d",a); } 则该函数的数据类型是(C)

C语言循环结构练习题带答案.doc

第 5 章循环结构程序 设计 练习题 1.单项选择题 ( 1)语句 while (!e);中的条件!e等价于A。 A. e==0 B. e!=1 C. e!=0 D. ~e ( 2)下面有关for循环的正确描述是D。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在 for循环中,不能用break 语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中D。 A.不能使用do-while语句构成的循环 B. do-while 语句构成的循环必须用break 语句才能退出 C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环 D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环 ( 4) C 语言中 while 和 do-while 循环的主要区别是A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 ( 5)以下程序段C。

int x=-1; do { x=x*x; } while (!x); A.是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误( 6)下列语句段中不是死循环的是__C__。 A.i=100; while (1) { i=i%100+1; if (i==20) break; } B.for (i=1;;i++) sum=sum+1; C.k=0; do { ++k; } while (k<=0); D.s=3379; while (s++%2+3%2) s++;

2019二级C语言题库参考答案解析

2019年C语言考题答案 1、程序填空题 给定的程序的功能是调用fun 函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat 的二进制中。 填空:( 1) STYPE(2)FILE(3)fp 改错:(1) for(i=0;i<=sl;i++)(2)t[2*sl]= 0“ 或t[sl+sl]= 0“ 编程: *c=(a/10)*1000+(b/10)*100+(a%10)*10+(b% 10); 2、程序填空题给定程序的功能是:从键盘输入若干文本 (每行不超过80 个字符),写到文件myfile4.txt 中,用-1 作为字符串输出输入的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText 和Writetext 实现。 填空:(1)*fw(2)str (3) str 改错:(1)voidfun(longs,long*t)(2) s1=s1*10; 编程:int i,j=0,min=a[0].s; for(i=0;i

else if(min==a[i].s) b[j++]=a[i]; } return j; 3、程序填空题 给定程序中,函数fun 的功能是:讲自 然数1~10 以及它们的平方根写到名为myfile3.txt 的文本中,然后再按顺序读出显示在屏幕上。 填空:( 1) fp( 2)fclose(fp)(3)myfile3.txt 改错:( 1)for(i=j+1;i

C语言试题及答案

大学C语言考试题库 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

2020最新C语言题库及答案

2020最新C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age

C语言循环结构练习题

5.2 练习题5 1. 单项选择题 (1)语句while (!e);中的条件!e等价于。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是____。 A. i=100; while (1) { i=i%100+1; if (i==20) break;

第5章循环结构程序设计35 } B. for (i=1;;i++) sum=sum+1; C. k=0; do { ++k; } while (k<=0); D. s=3379; while (s++%2+3%2) s++; (7)与以下程序段等价的是____。 while (a) { if (b) continue; c; } A. while (a) B. while (c) { if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a) { if (b) c; } { if (b) break; c; } (8)以下程序的输出结果是____。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; printf("%d",i); } } A. 45 B. 457810 C. 69 D. 678910 (9)以下程序的输出结果是____。 #include main() { int num=0; while (num<=2) {

2020年C语言题库及答案

2020年C语言题库及答案

姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油!一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项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 D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言循环结构练习题带答案

第5章循环结构程序设计 5.1基本知识点 ?while语句的使用格式和注意事项 ?do-while语句的使用格式和注意事项 ?for语句的使用格式和注意事项 ?break和continue语句在循环语句中的应用 ?循环结构的嵌套 ?使用goto语句实现循环结构 ?穷举法程序设计方法 ?迭代程序设计方法 5.2练习题5 1.单项选择题 (1)语句while(!e);中的条件!e等价于A。 A.e==0 B.e!=1 C.e!=0 D.~e (2)下面有关for循环的正确描述是D。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判定表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中D。 A.不能使用do-while语句构成的循环 B.do-while语句构成的循环必须用break语句才能退出 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是A。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内 D.do-while的循环体不能是复合语句

(5)以下程序段C。 intx=-1; do { x=x*x; } while(!x); A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误(6)下列语句段中不是死循环的是__C__。 A.i=100; while(1) { i=i%100+1; if(i==20)break; } B.for(i=1;;i++) sum=sum+1; C.k=0; do { ++k; }while(k<=0); D.s=3379; while(s++%2+3%2) s++; (7)与以下程序段等价的是__A__。 while(a) { if(b)continue; c; } A.while(a) B.while(c) {if(!b)c;} {if(!b)break;c;} C.while(c) D.while(a)

c语言循环结构上机习题

1、计算n的阶乘(n!),n的取值在1~10之间。分别使用while、do…while和for 语句实现。(三个程序) 给循环变量赋初值 循环条件 循环体 循环变量的增值 2、输入一行字符,分别统计输入了多少个 字母、数字、空格和其他字符。 3、假设函数f(x)=3x2+2x+1,试利用for循环语句分别求出1<=x<=9的f(1)~f(9)各函 数值。

4、有分数序列2/1,3/2,5/3,8/5,13/8, 21/13…求这个数列的前20项和。 (分析提示:每个分子等于前一个数据分子与分母的和,每个分母等于前一个数据的分 子) 5、输出显示1~100之间可以被n整除的所有整数,运行时n由键盘输入。要求每一行显示5个数,并且统计一共有多少个整数能 被n整除。 6、下面程序的功能是从键盘上输入若干学

生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ①) { if(x>amax) amax=x; if( ②) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,a min); } 7、使用循环语句输出以下图形

8、有一个数学等式:AB*CD=BA*DC,式中的一个字母代表一位数字,试找出所有符合上述要求的乘积式并打印输出。 8、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问

一百只鸡中公鸡、母鸡、小鸡各多少)。 分析: 这是一个古典数学问题,设一百只鸡中公鸡、母鸡、小鸡分别为x,y,z,问题化为 三元一次方程组: 100=x*5+y*3+z/3 100=x+y+z 这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围: 1) x的取值范围为1~20 2) y的取值范围为1~33 3) z的取值范围为3~99,步长为3 对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。

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 D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D 中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 详见教材P52~53. %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1; /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2 11.如果int a=3,b=4;则条件表达式"a

C语言习题:顺序、选择、循环

2.3顺序结构程序设计 2.3.1 要点导读 1.printf() 与scanf()语句。 printf() 与scanf()语句是最通用的输入输出函数,它们可以在程序设计者的控制下以各种格式分别实现数据的输出和输入操作。它们位于stdio.h库文件中。 2.字符数据的输入输出。 最简单的字符输入输出函数是getchar()和putchar()。两者分别从键盘读一个字符或向显示屏写一个字符。 2.3.2 经典例题分析 1.下列程序运行后输出的结果是。 #include void main() { int a=0,b=0; a=10; b=20; printf(“a+b=%d”,a+b); } 分析:printf( )是输出函数,它的括号内由两部分组成: 1)控制字符串,是用双引号括起来的字符串,它包括两种信息: (1) 格式说明。由”%”和格式字符组成,如:%d、%f、%c等。它的作用是将输出的 数据转换成指定的格式输出。 (2) 普通字符。需要原样输出的字符。 2)”输出表列”是需要输出的一些数据,可以是表达式。 题目中a的值是10,b的值是20,在 printf(“a+b=%d”,a+b); 格式说明输出表列 中,”a+b= “是普通字符,需原样输出。输出表列是一个表达式,它的结果以整型输出。 答案:a+b=30。 2.下列程序运行后输出的结果是。 #include void main()

{ int a=732; printf(“%d\n”,a); printf(“%2d\n”,a); printf(“%10d\n”,a); printf(“%-10d\n”,a); } 分析:d格式符,用来输出十进制整数。其中%d,按整型数据的实际长度输出。%md,m 为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 printf(“%d\n”,a);把a的值按原样输出:732。printf(“%2d\n”,a);结果占2列,但732占3列大于2列,所以按实际位数输出:732。printf(%10d\n”,a);结果占10列,但732占3列小于10列,所以左端补7个空格。printf(“%-10d\n”,a); 结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。 答案: 732 732 □□□□□□□732 /*□表示空格*/ 732□□□□□□□ 3.已知char a=‘\103’;则语句printf(“%3d”,a);执行后的输出结果为(□表示空格) 。 A)□67 B)’c’C)67□D)103 分析:’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。printf(“%3d”,a);把’\103’转换为十进制数输出,结果占3列。但67占2列,小于要求的3列,所以左补空格,即□67。 答案:C。 4.下列程序运行后结果是。 #include #define a 3345.67 void main() { printf(“%f\n”,a); printf(“%e\n”,a); printf(“%4.2f\n”,a); printf(“%3.1f\n”,a); printf(“%10.3f\n”,a); printf(“%-10.3f\n”,a); } 分析:f格式符,用来输出实数,以小数形式输出,小数点后输出6位。所以printf(“%f\n”,a);输出结果为3345.670000。 %m.nf是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。如果小于m,则左补空格,同时小数点保留n位(四舍五入)。printf(“%4.2f\n”,a);输出结果为3345.67。 printf(“%3.1f\n”,a);输出结果为3345.7。 e格式符,以规范化指数的形式输出,所以printf(“%e\n”,a);3.345670e+03。

C语言题库(带答案)-排版

一、选择题 1、以下不能定义为用户标识符的是()。 (A) MAIN (B) _HJ (C) 2ong (D) LINE1 2、以下不能定义为用户标识符的是() (A) If (B) H_J (C) 208ong (D) LINE12 3、下面属于C语言标识符的是( )。 (A) 2ab (B) @f (C) b (D) _a12 4、下列符号中用来表示C语言中的回车换行的是()。 《 (A) \r (B) \n (C) \b (D) \t 5、在计算机系统中,可执行程序是() (A) 源代码(B)汇编语言代码 (C) 机器语言代码(D) ASCII码 6、在Visual C++ 环境下,C源程序文件名的默认后缀是( )。 (A) .obj (B) .txt (C) .c (D) .doc 7、Microsoft Visual C++ 中,C语言可执行程序的扩展名是:( ) (A) exe (B) obj (C) c或cpp (D) txt ] 8、C程序由( )组成。 (A)子程序 (B) 主程序和子程序(C) 函数 (D) 过程 9、C程序的基本组成单位( )。 (A) 数据类型 (B) 变量和常量 (C) 函数 (D) 表达式 10、C语言中主函数的个数是( )。 (A) 2个 (B) 1个 (C) 任意个 (D) 10个 11、一个C程序的执行是从() (A)本程序的main()函数开始,到main函数结束. — (B)本程序文件的第一个函数开始,到本程序文件最后一个函数结束. (C)本程序文件的第一个函数开始,到本程序main函数结束. (D)本程序的main()函数开始,到本程序文件的最后一个函数结束. 12、以下叙述正确的是 (A)在C语言程序中,main函数必须放在其他函数的最前面 (B)在每个后缀为.C的C语言源程序都可以单独进行编译 (C)在C语言程序中,只有main函数才可单独进行编译 (D)每个后缀为.C的C语言源程序都应该包含一个main函数 ] 13、设变量a是整型,b是实型,c是双精度型,则表达式2+’a’+b*c值的数据类型是()。 (A) int (B) float (C) double 14、以下选项中表示一个合法的常量是(说明:符号□表示空格) A) 9□9□9 B)0Xab C) D) 15、以下选项中非法的字符常量是 A)'\102' B)'\65' C)'\xff' D)'\019' 16、以下选项中,能表示逻辑值“假”的是 A)1 B) C)0 D) 》17、下列关系表达式中,结果为“假”的是 A)(3+4)>6 B)(3!=4)>2 C) 3<=4||3 D)(3<4)==1 18、关于C语言变量,以下说法不正确的是() (A) 变量名由程序员定义,必须符合标识符的命名规则。 (B) 变量是程序运行过程中其值可以改变的量。 (C) 可以用C语言的关键字作为变量名。 (D) 变量命名时应尽量做到见名知意。 19、关于C语言中数的表示,以下叙述正确的是 # A)只有整型数在允许范围内能精确无误的表示,实型数会有误差 B)只要在在允许范围内整型和实型都能精确表示 C)只有实型数在允许范围内能精确无误的表示,整型数会有误差 D)只有八进制表示的数在不会有误差 20、设有语句int a=3;,则执行了语句a+=a=a*a;后,变量a的值是。A.3 B.0 C.9 D.12 21、在C语言中,要求运算数必须是整型的运算符是。 A.% B./ C.< D.! ~ 22、C语言中最简单的数据类型包括。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 23、在C语言中,合法的字符型常量是。 A.'\t' B."A" C.65 D.A 24、若已定义x和y为double型变量,则表达式x=1,y=x+3/2的值是。A.1 B.2 C. D. 25、设正x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是。、 printf("%d,%d\n",x--,--y); A.10,3 B.9,3 C.9,2 D.10,2 26、若有定义int a=8,b=5,C;,执行语句C=a/b+;后,C的值为。 A. B.1 C. D.2 27、以下选项中,不正确的赋值语句是。 A.++t; B.n1=(n2=(n3=0)); C.k=i==j; D.a=b+c=1; 28、设x和y均为int型变量,则语句:x+=y,y=x-y;x-=y;的功能是。; A.把x和y按从大到小的顺序排列 B.把x和y按从小到大的顺序排列 C.无确定结果 D.交换x和y中的值 29、以下程序的输出结果是。 #include <> main() { @ char c='z';

相关文档