C语言第四章习题-2012.10.9更新

合集下载

c语言1-4章习题答案

c语言1-4章习题答案
}
习题3-3
#include <stdio.h>
void main()
{int a=5,b=7;
float x=67.8564,y=-789.124;
char c='A';
long n=1234567;
unsigned u=65535;
printf("%d%d\n",a,b);
printf("%3d%3d\n",a,b);
{
char c1,c2; /*定义为字符型*/
int i1,i2; /*定义为整型*/
printf("请输入两个整数i1,i2:");
scanf("%d,%d",&i1,&i2);
c1=i1; /*将整数赋值给字符变量*/
c2=i2;
printf("按字符输入结果:\n");
printf("%c,%c\n",c1,c2);
i1=c1; /*赋值给整型变量*/
i2=c2;
printf("按字符输入结果:\n");
printf("%c,%c\n",i1,i2);
printf("按整数输入出结果:\n");
printf("%d,%d\n",c1,c2);
}
习题3-8-3
#include <stdio.h>
void main()
}
习题1-6
#include <stdio.h>
void main()
{int a,b,c,max;
printf("please input a,b,c:\n");

C语言章节习题集(全)

C语言章节习题集(全)

C语言程序设计第一、二章单项选择题1.将汇编语言编写的程序翻译成目标程序的程序是()A)解释B)编译C)汇编D)目标2.不属于面向机器语言的是()A)符号语言B)二进制语言C)3.A)解释B)编译C)汇编D)二进制4.不属于高级语言的是()。

5.A)D)分支结构6、CA7A、在main()函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中,main()函数必须放在程序的开始部分D、C语言程序总是从main()函数开始执行8、以下对C语言描述中正确的是()。

A、C语言源程序中可以有重名的函数B、C语言源程序中要求每行只能书写一条语句C、C语言源程序中,注释可以出现在任何位置D、最小的C源程序中没有任何内容9、对C语言源程序执行过程描述正确的是()。

A、从main()函数开始执行,到main()函数结束B、从程序的第一个函数开始执行,到最后一个函数结束C、从mainD、填空题1.2.3.4.用C C程序”,扩展名规定为“____”。

5.C OBJ”的____。

6.C____,才能"EXE"。

7、89.选择结构是____选择某个操作来执行的—种程序结构。

10.选择结构可以分为____、双分支结构和多分支结构。

11.循环结构又可分为当型循环、____及次数型循环。

第三章数据类型、运算符与表达式单项选择题1.以下程序的输出结果是。

main(){inta=10,b=10;printf("%d,%d",a--,++b);}A)10,11B)10,10 C)9,9D)9,112.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A)'a'&&'b'B)a<=b3.设ch是char型变量,其值为4.main();}A)003B)012 C)103D)1125.字符串“\t\n\\\045\’”的长度为。

程序设计基础-c语言-第四章数组-教材答案-科学出版社

程序设计基础-c语言-第四章数组-教材答案-科学出版社

程序设计基础-c语言-第四章数组-教材习题及其答案1.0编程将一个一维数组的值按逆序重新存放#include<stdio.h>void main(){int i_data[10];int m,i_temp;printf("给定10个数,用空格分隔:");scanf("%d %d %d %d %d %d %d %d %d %d",&i_da ta[0],&i_data[1],&i_data[2],&i_data[3],&i_data[4],&i_d ata[5],&i_data[6],&i_data[7],&i_data[8],&i_data[9]);for(m=1;m<=10/2;m++) //有意写成10/2 已解决任意一维数组的逆序问题,为什么此处用m=1;m<=10/2,而不能m=0;m<10/2{ i_temp=i_data[m-1]; //下面三条语句是典型的两数交换的方法i_data[m-1]=i_data[10-m];i_data[10-m]=i_temp;}for(m=0;m<10;m++){ printf("%d ",i_data[m]);}printf("\n");}2.0 编程求Fibonacci数列的前二十项。

FIBONACCI数列的定义F0=0,F1=1,Fn=Fn-1+Fn-2#include<stdio.h>void main(){int F[20];int m,n,i_blanknum;for(m=0;m<20;m++){ switch(m){ case 0:F[0]=0;break;case 1:F[1]=1;break;default: F[m]=F[m-1]+F[m-2];}}printf("Fibonacci数列的前20项是:\n"); for(m=0;m<20;m++){ printf("%d ",F[m]);}printf("\n");//下面输出项,这是我加的效果for(m=0;m<20;m++){ printf("%d",m+1); //输出项的编号//计算该项数据占几位i_blanknum=1;//每个数据间占一个空格n=F[m];do{ i_blanknum=i_blanknum+1;n=n/10;}while(n!=0);//减去该项编号数据占的位数n=m+1;do{ i_blanknum=i_blanknum-1;n=n/10;}while(n!=0);//输出空格while(i_blanknum>0){ printf(" ");i_blanknum--;}}printf("\n");}2.0在一个从小到大排列的数组中查找X,若x存在就将其测出,若不存在将其添加。

C 课后习题答案第四章

C  课后习题答案第四章
case 'b' : cout << '$' ; break ;
case 'c' : cout << '*' ; break ;
case 'd' : continue ;
}
cout << '#' << endl ;
}
}
答案:
$#
*#
*#
%
7.#include <iostream.h>
void main()
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int isPrime(int);
void createAry(int[], int);
void outAry(const int[], int);
void main()
cout << f( a, 3, 3 ) << endl ;
}
int f( int a[][3], int row, int col )
{int i, j, t=1 ;
for( i=0; i<row; i ++ )
for( j=0; j<col; j++ )
{a[i][j] ++ ;
if( i == j ) t*= a[i][j] ;
}
void createAry(int a[], int n)
{ srand( time(0) );

C语言程序设计教程第四章练习题解析

C语言程序设计教程第四章练习题解析
4对:在C++中在复合语句中定义变量为合法,但在C语言中就是非法得
12、C语言程序得基本单位就是( )、
A.程序行
B、语句
C、函数
D、字符
答案:C
解析:函数就是C语言程序得基本单位
13、C语言中决定函数返回值得类型得就是()、
A、return语句中得表达式类型
B、调用函数得主调函数类型
C。调用函数时临时
intd=1;
intfun(intp)
{
staticintd=5;
d+=p;
printf("%d ",d);
return d;
}
voidmain()

ﻩint a=3;
ﻩprintf("%d \n",fun(a+fun(d)));

A.699
B、66 9
C、61515
D、6 615
答案:C
解析:首先调用fun(d),将全局变量d=1带入,此时fun()函数内得静态局部变量d得值就是1,d+=p后d得值就是6,输出d得值,返回d得值;
A、当调用时,会调用内部函数
B、当调用时,会调用外部函数
C.当调用时,会调用两次,先调用内部函数再调用外部函数
D、都不调用,会报错
答案:A
解析:当内部函数与外部函数重名时,会优先调用内部函数
6、在C语言中,声明外部函数需要添加得关键字就是()
A、extern
B、static
C、this
D.auto
答案:A

ﻩintd=5;
ﻩd+=p++;
ﻩprintf(”%d”,d);
}

(完整版)C语言各章练习题

(完整版)C语言各章练习题

目录第一章程序设计和C语言 (2)第二章最简单的C程序设计 (2)第三章选择结构程序设计 (4)第四章循环结构程序设计 (7)第五章数组 (11)第六章函数 (14)第七章指针 (18)第一章程序设计和C语言一、选择题:1.一个C程序的执行是从( )A、本程序的main函数开始,到main函数结束B、本文件第一个函数开始,到本文件的最后一个函数结束C、本程序的main函数开始,到本文件的最后一个函数结束D、本文件的第一个函数开始,到本文件的main结束2.以下说法不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面3.C语言规定:在一个源程序中,main函数的位置()A、必须在开始B、必须在系统调用的库函数的位置C、可以任意D、必须在最后4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是( )A、program.bak和program.objB、program.obj和program.exeC、program.exl和program.cD、program.bak和prgram.exe第二章最简单的C程序设计一、选择题1.是合法的用户自定义标识符的( )A、ah-spksB、doubleC、<ctrl>D、_myapple2.以下正确的C语言标识符是()A、%xB、a+bC、a123D、test!3.以下不能定义为用户标识符的是( )A、V oidB、b_2C、intD、name4.以下选项中可作为C语言合法整数的是( )A、11010(B)B、0583C、x2b2D、0xafb5.VC++6.0中的短整型数值在计算机中占用的字节个数是( )A、1B、2C、3D、46.设short int型的数据长度为2个字节,则unsigned short 类型数据的取值范围是()P34A、均为2个字节B、0至65535C、-3276至32767D、-256至255 7.以下选项中可作为C语言合法常量的是()(指数E或e前必须有数字,后面必须有整数)A、-80.0B、-080C、-8e1.2D、-80.0e8.在VC++6.0编译环境下,下列式中,值不为4的表达式是()P34,double为8字节A、sizeof(unsigned long)B、sizeof(long)C、sizeof(unsigned int)D、sizeof(double)9.设有说明语句:char a=’\123’;则变量a( )一个ascii字符A、包含1个字符B、包含2个字符C、3个字符D、说明不合法10.设x为一数字字符,则其所对应的十进制数值为()。

C语言第4章 习题解答

C语言第4章 习题解答
y1= (x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
请填空。
/*文件路径名:e4_2_1\main.c */
#include <stdio.h>/*标准输入/输出头文件*/
#include <math.h>/*数学函数首部文件*/
doubleFun(double x) { return x*x - 2 * x + 6; }
解析:面向对象技术有三个重要特性:封装性、继承性和多态性;而类比性不属于面向对象的特征。
答案:C
12.对于一个正常运行的C程序,以下叙述中正确的是。
A)程序的执行总是从main函数开始,在main函数结束
B)程序的执行总是从程序的第一个函数开始,在main函数结束
C)程序的执行总是从main函数开始,在程序的最后一个函数中结束
printf("%d\n", s);/*输出s */
return 0;/*返回值0,返回操作系统*/
}
程序运行后的输出结果是。
A)24B)28C)32D)36
解析:main()函数在开始时,s=a=4,其中的a为全局变量。
第1次循环时,i=0,f(i)=f(0),将0传递给形参n,首先执行if语句中的条件“n%2”;条件为假,则执行else下的复合语句“{ int a = 7; t += a++; }”,可知t=0+7=7,使用return返回t=7+(a++)=7+5=12,a运算完后自增1,变为6,这里的a为函数f()内,复合语句之外的a,返回主函数后s=4+12=16。

C语言第四章习题

C语言第四章习题

练习4-1一、选择题1.已知:char c='A'; int i=1, j;,执行语句j=!c&&i++;,则i和j的值是( )。

A.1,1 B.1,0 C.2,1 D.2,02.已知:int x=1, y=2, z;,则执行z=x>y?++x:++y;,则z的值为( )。

A.1 B.2 C.3 D.43.已知:int a=4, b=5, c;,则执行表达式c=a=a>b后变量a的值为( )。

A.0 B.1 C.4 D.54.已知:char ch='A';,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的值是( )。

A.'A' B.'a' C.'Z' D.'z'5.若w=1, x=2, y=3, z=4;,则条件表达式w>x?w:y<z?y:z的结果为( )。

A.4 B.3 C.2 D.16.已知:int w=3, x=10, z=7;,则执行下面语句后的结果为( )。

printf("%d",x>10?x+100:x-10);printf("%d",w++||z++);printf("%d",!w>z);printf("%d",w&&z);A.0111 B.1111 C.0101 D.01007.已知:a=b=c=1且a、b、c均为int型变量,执行以下语句:++a||++b&&++c;则变量a值为( ①),b值为( ②)。

①A.不正确B.0 C.2 D.1②A.1 B.2 C.不正确D.08.执行下面语句后x的值为( )。

int a=14, b=15, x;char c='A';x=((a&b)&&(c<'a'));A.TRUE B.FALSE C.0 D.19.要判断char型变量m是否是数字,可以使用下列表达式( )。

C语言第4章习题解答

C语言第4章习题解答

{ float x1,x2; { x1=-b/(2*a); x2=-b/(2*a); printf("%.2f ,%.2f\n",x1,x2); }
} void f3(float a,float b,float c,float d) {
float x1,x2; {
x1=-b/(2*a); x2=sqrt(-d)/(2*a); printf("%.2f+i*%.2f\n",x1,x2); printf("%.2f-i*%.2f\n",x1,x2); } } (3). #include<stdio.h> double p(int,double); int main() { int n; double x; do { scanf("%d",&n); }while(n<0); scanf("%lf",&x); printf("%lf\n",p(n,x)); return 0; } double p(int n,double x) { double pn; if(n==0) pn=1; else if(n==1) pn=x; else pn=((2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x))/n; return pn; }
float a,b,c,d; scanf("%f %f %f",&a,&b,&c); if(a==0) {
printf("不是一元二次方程\n"); exit(0); } d=b*b-4*a*c; if(d>0) f1(a,b,c,d); else if(d==0) f2(a,b,c,d); else f3(a,b,c,d); return 0; } void f1(float a,float b,float c,float d) { float x1,x2; { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("%.2f ,%.2f\n",x1,x2); } } void f2(float a,float b,float c,float d)

C语言程序设计习题集第4章循环结构(答案)

C语言程序设计习题集第4章循环结构(答案)

第4章循环结构题择一、选1、有以下程序段intk=0;while(k=1)k++;是(A)while循环执行的次数A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次,t的值为0i nt类型,进入下面的循环之2、t为前while(t=1){⋯⋯}则以下叙述中正确的是(B)A)循环控制表达式的值为0B)循环控制表达式的值为 1C)循环控制表达式不合法D)以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B)A)m==0B)m!=0C)m==1D)m!=14、有以下程序,程序运行后的输出结果是(C)。

main(){inti=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%n”d,sum);}A)4B)5C)10D)死循环5、有以下程序,程序运行后的输出结果是(D)。

main(){inti=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%n”d,sum);}A)4B)5C)10D)死循环6、有如下程序main(){intn=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A)987B)876C)8765D)98767、以下程序的输出结果是(B)main(){intnum=0;while(num<=2){num++;printf(“%n”d,num);}}A)1B)1C)1D)l2223348、有以下程序,若运行时输入3.62.4<回车>,则输出的结果是(B)。

main(){floatx,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“n%”f,y);}A)1.500000B)1.600000C)2.000000D)2.4000009、执行以下程序段时x=-1;do{x=x*x;}while(!x);则下面描述正确的是(A)A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误10、有以下程序段其输出结果是(C)intx=3;do{printf("%d",x-=2);}while(!(--x));A)1B)30C)1-2D)死循环11、有如下程序main(){intx=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B)A)321B)23C)不输出任何内容D)陷入死循环12、有以下程序段intn=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345&&n<3); 此处do—while循环的结束条件是(D)A)P的值不等于12345并且n的值小于3B)P的值等于12345并且n的值大于等于3C)P的值不等于12345或者n的值小于3D)P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A)n=0;do{++n;}while(n<0);B)n=0;while(1){n++;}C)n=10;while(n);{n--;}D)for(n=0,i=1;;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B) for(i=2;i==0;)printf(“%-d-”);,iA)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A)3B)4C)5D)不定16、有以下程序main(){inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的运行结果是(C)A)741B)963C)852D)87542117、以下程序执行后sum的值是(C)A)15B)14C)不确定D)0main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf(“n%”d,sum);}18、有如下程序{inti,sum=0;for(i=1;i<=3;sum++)sum+=i;printf(“%n”d,sum);}该程序的执行结果是(C)A)6B)3C)死循环D)019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C)A)0B)10C)-1D)120、执行下面程序片段的结果是(A)。

C语言第四章复习题(含答案)

C语言第四章复习题(含答案)

C语言第四章复习题(含答案)1.在下列选项中,不正确的赋值语句是(D )。

(A)++t; (B)n1=(n2=(n3=0)); (C)k=i==j; (D)a=b+c=1;2.int a,b;scanf("a=%b,b=%d,&a,&b);以下程序的输入结果是 ( A )。

main( ){ int i=010,j=10,k=0x10;printf("%d,%d,%d\n",i,j,k);}a)8,10,16 (B)8,10,10 (C)10,10,10 (D)10,10,162.下列语句中符合C语言语法的赋值语句是(D )。

(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+73.已知字母A的ASCⅡ码为十进制的65,下面程序的输出是(A )。

(A) 67,D (B) B,C (C) C,D (D) 不确定的值main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}4.有以下程序main(){ int a=666,b=888;printf("%d\n",a,b);}程序运行后的输出结果是( B )。

(A)错误信息 (B)666 (C)888 (D)666,8885.若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n,u,v,w);则输出结果是( A) 。

(A)8,16,10 (B)10,10,10 (C)010,16,10 (D)16,16,166.若有以下定义和语句char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');则输出结果是( B )。

C语言第四章习题答案

C语言第四章习题答案

1.下列程序中横线处正确的语句应该是()#include<iostream>using namespace std;class Base{public;void fun( ){cout< < “Base : : fun” < < endl;}};class Derived : public Base{public:void fun( ){_________//显示调用基类的函数fun( )cout < < “Derived : : fun” < < endl;}};A fun( ).B Base.fun( )C Base : : fun( )D Base - >fun( )2下面程序的执行结果是()#include<iostream.h>class A{public:void disp(){ cout<<"class A"<<endl;}};class B:public A{public:void disp(){cout<<"class B"<<endl;}};void main(){B b;b.disp();}输出为:class B3下面程序的执行结果是()#include<iostream.h>class A{public:A(int I,int j){a=I;b=j;}void move(int x,int y){a+=x;b+=y;}void show(){cout<<"("<<a<<","<<b<<")"<<endl;} private:int a,b;};class B:private A{ public:B(int I,int j,int k,int l):A(I,j){x=k;y=l;}void show(){cout<<x<<","<<y<<endl;}void fun(){move(2,4);}void f1(){A::show();}private:int x,y;};void main(){ A e(2,3);e.show();B d(4,5,6,7);d.fun();d.show();d.f1();d.show();}输出为:(2,3)6,7(6,9)4下面程序的输出结果为#include<iostream.h>class base{public:base(int x,int y){a=x;b=y;}void show(){cout<<"base:"<<a<<";"<<b<<endl;} private:int a,b;};class derived:public base{public:derived(int x,int y,int z):base(x,y),c(z){}void show(){cout<<"derived:"<<c<<endl;} private:int c;};int main(){base b(10,10),*pb;derived d(20,30,40);pb=&b;pb->show();pb=&d;pb->show();return 0;}输出结果为base:10;10base:20;3055、下面程序的输出结果为#include<iostream.h>class AA{protected:int k;public:AA(int n=4):k(n){}~AA(){cout<<"AA"<<endl;}virtual void f() const=0;};inline void AA::f() const{}class BB:public AA{public:~BB(){cout<<"BB"<<endl;}void f() const{cout<<k-2;AA::f();}};int main(){AA &p=*new BB;p.f();delete &p;return 0;}程式的执行结果2AA6 分析以下程式的执行结果:#include<iostream.h>class base{ int n;public:base(){};base (int a){cout << "constructing base class" << endl;n=a;cout << "n=" << n << endl;}~base() { cout << "destructing base class" << endl; } };class subs : public base{int m;public:subs(int a, int b) : base(a){cout << "constructing sub class" << endl;m=b;cout << "m=" << m << endl;}subs() { cout << "destructing sub class" << endl; }};void main (){subs s(1,2);}解:这里base 是基类,subs为派生类,subs类的构造函数中含有调用基本类的构造函数。

明解C语言入门篇第四章答案

明解C语言入门篇第四章答案

明解C语⾔⼊门篇第四章答案练习4-1#include <stdio.h>int main(void){int no;int x;do{printf("请输⼊⼀个整数:");scanf("%d", &no);if (no == 0)puts("该整数为0。

");else if (no > 0)puts("该整数为正数。

");elseputs("该整数为负数。

");printf("要重复⼀次吗?【yes···0/No···9】:");scanf("%d", &x);} while (x == 0);}练习4-21 #include <stdio.h>2int main()3{4int a;5int b;6int sum = 0;7int x;89 puts("请输⼊两个整数。

");10 printf("整数a:"); scanf("%d", &a);11 printf("整数b:"); scanf("%d", &b);12 x=a;1314do {15 sum+=x;16 x--;17 } while (x!=b-1);1819 printf("⼤于等于%d⼩于等于%d的所有整数的和是%d",b,a,sum);202122return0;23 }练习4-31/*2从输⼊的整数开始倒数到03*/45 #include <stdio.h>67int main(void)8{9int no;1011 printf("请输⼊⼀个正整数:");12 scanf("%d", &no);1314while (no >= 0) {15 printf("%d ", no);16 no--;17 }18if (no == -1) {19 printf("\n");20 }212223return0;24 }练习4-41/*2从输⼊的整数开始倒数到03*/45 #include <stdio.h>67int main(void)8{9int no;1011 printf("请输⼊⼀个正整数:");12 scanf("%d", &no);1314while (no > 0)15 printf("%d ", no--); /* no的值在显⽰之后递减 */ 16if (no == 0) {17 printf("\n");18 } /* 换⾏ */1920return0;21 }练习4-51/*2递增显⽰从0到输⼊的正整数为⽌的各个整数3*/45 #include <stdio.h>67int main(void)8{9int i, no;1011 printf("请输⼊⼀个正整数:");12 scanf("%d", &no);1314 i = 1;15while (i <= no)16 printf("%d ", i++); /* i的值在显⽰之后递增 */ 17if (no >= 0) {18 printf("\n");19 } /* 换⾏ */2021return0;22 }练习4-61 #include <stdio.h>23int main(void)4{5int no;6int i;78 printf("请输⼊⼀个正整数:");9 scanf("%d", &no);1011 i = 0;12while (i < no) {13if ((i % 2)==0) {14 printf("%d ", i);15 }16 i++;17 }181920return0;21 }练习4-71 #include <stdio.h>2int main(void)3{4int n1, n2;56 printf("请输⼊⼀个整数:");7 scanf("%d", &n1);89 n2 = 2;10while (n2 < n1) {11 printf("%d ", n2);12 n2 *= 2;13 }14 putchar('\n');1516return0;17 }练习4-81/*2输⼊⼀个整数,连续显⽰出该整数个* 3*/45 #include <stdio.h>67int main(void)8 {9int no;1011 printf("正整数");12 scanf("%d", &no);1314while (no-- > 0) {15 putchar('*');16 }17if (no == -1)18 putchar('\n');1920return0;21 }练习4-91 #include <stdio.h>2int main(void)3{4int no;5 printf("正整数:");6 scanf("%d", &no);7int i;8 i = 0;9while (i < no) {10if (no %2 )11 {12 printf("+");13 }14else15 {16 printf("-");17 }18 no--;19 }2021return0;22 }练习4-101 #include <stdio.h>23int main(void)4 {5int no;6 printf("正整数:");7 scanf("%d", &no);8while (no-- > 0) {9 putchar('*');10 putchar('\n');11 }12return0;1314 }练习4-111/*2逆向显⽰正整数3*/45 #include <stdio.h>67int main(void)8{9int no;1011do {12 printf("请输⼊⼀个正整数:");13 scanf("%d", &no);14if (no <= 0)15 puts("\a请不要输⼊⾮正整数。

C语言第四章基础练习题

C语言第四章基础练习题

第四章基础练习题知识点:1、C语句可分为以下五类:1>表达式语句:由表达式加上分号“;”组成2>函数调用语句:由函数名、实际参数加上分号“;”组成。

其一般形式为:函数名(实际参数表);3>控制语句:有九种控制语句。

可分成以下三类:条件判断语句:if语句、switch语句;循环执行语句:do while语句、while语句、for语句;转向语句:break语句、goto语句、continue语句、return语句。

4>复合语句把多个语句用括号{}括起来组成的一个语句,在程序中应把复合语句看成是单条语句,而不是多条语句。

复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。

5>空语句2、putchar 函数是字符输出函数,其功能是在显示器上输出单个字符。

其一般形式为:putchar(字符变量)对控制字符则执行控制功能,不在屏幕上显示。

3、getchar函数的功能是从键盘上输入一个字符。

其一般形式为: getchar();通常把输入的字符赋予一个字符变量,构成赋值语句,getchar函数只能接受单个字符,输入数字也按字符处理。

输入多于一个字符时,只接收第一个字符。

4、printf函数称为格式输出函数。

其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。

printf函数调用的一般形式为:其中格式控制字符串用于指定输出格式。

格式控制串可由格式字符串和非格式字符串两种组成。

格式字符串是以% 开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等非格式字符串在输出时原样照印,在显示中起提示作用。

在Turbo C类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:标志:标志字符为-、+、#、空格四种,其意义下表所示:输出最小宽度:用十进制整数来表示输出的最少位数。

若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

C语言程序设计 – 第 04 章课后习题

C语言程序设计 – 第 04 章课后习题

C语言程序设计– 第四章课后习题一、选择题1. 以下关于运算符优先级的描述中正确的是(C)A. 关系运算符<算术运算符<赋值运算符<逻辑运算符(不含!)B. 逻辑运算符(不含!)<关系运算符<算术运算符<赋值运算符C. 赋值运算符<逻辑运算符(不含!)<关系运算符<算术运算符D. 算术运算符<关系运算符<赋值运算符<逻辑运算符(不含!)2. 能正确表示“当x的取值在[1, 10]或[200, 210]范围为真,否则为假”的表达式是(C)A. (x >= 1) && (x <= 10) & (x >= 200) & (x <= 210)B. (x >= 1) || (x <=10) || (x >= 200) || (x <= 210)C. (x >= 1) && (x <=10) || (x >= 200) && (x <= 210)D. (x >= 1) || (x <=10) && (x >= 200) || (x <= 210)3. 对于以下程序,输出结果为(A)# include <stdio.h>main(){int a, b, c;a =b =c = 0;printf("%d, %d, %d, %d\n", a, b, c, a++ && b++ || c++);}A. 1, 0, 1, 0B. 1, 1, 1, 0C. 1, 0, 1, 1D. 1, 1, 1, 1(解释:在VC++编译环境中,参数的计算是从右向左的,因此先计算右侧的表达式,并且每个参数计算完后相关待更新变量会被更新;对于逻辑与运算符,若左侧值为假,则右侧的值不会被计算(没必要算);对于逻辑或运算符若左侧的值为真,则右侧的值也不会被计算;布尔类型数据转整型时,true=1,false=0。

c语言第四章习题

c语言第四章习题

c语言第四章习题第四章练习题一、填空题1、以下程序的运行结果是(),把x定义为静态变量运行结果是()。

void increment(void){ int x=0; x+=1; printf(\main(){ increment(); increment(); increment(); }2、若输入的值是-125,以下程序的运行结果是()#include \main(){ int n; void f(int n); scanf(\ printf(\if(n1)printf(\ r=n%k; } }if(n!=1) printf(\}3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是()4、设有以下宏定义: #define WIDTH 80#define LENGTH (WIDTH+40)1则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是()5、下面程序的运行结果是()#define DOUBLE(r) r*r main(){ int x=1,y=2,t; t=DOUBLE(x+y); printf(\6、下面程序的运行结果是()#define MUL(z) (z)*(z) main(){ printf(\ } 7、下面程序的运行结果是()#define POWER(x) ((x)*(x)) main(){ int i=1; while(ib?a:b)+1 main(){ int i=6,j=8,k; printf(\ }二、选择题1、以下正确的说法是()建立自定义函数的目的之一是:A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存2、以下正确的说法是()A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。

C语言第4章_习题讲解

C语言第4章_习题讲解

1. 若要跳出 switch 结构,应使用 switch (表达式) break 语句。 { case 常量表达式1:语句1 break;
case 常量表达式 2: 语句 2 break; 2.多个case可以共用一组执行语句 …… case 常量表达式n:语句n break; default:语句n+1 }
例如,有函数如下: -1 (x<0) Y= 0 (x=0) 1 (x>0) 编写程序,由键盘输入x的值,屏幕显 示Y的值。
main ( ) main main ( ( )) { int x,y; int x,y; {{ int x,y; scanf("%d",&x); scanf("%d",&x); scanf("%d",&x); if(x<0) if(x!=0) if(x<0) y=-1; y=-1; if (x<0)y=-1; if(x>0) y=1; else if(x>0)y=1; else y=0; y=1; if (x==0) else y=0; y=0; else printf("x=%d,y=%d\n",x,y); printf("x=%d,y=%d\n",x,y); } printf("x=%d,y=%d\n",x,y); } }

语句4
#include<stdio.h> main( ) { int score; scanf(“%d”, &score); if (score>100||score<0) printf(“输入错误”); else if ( score<60) printf(“不及格”); else if ( score <80) printf(“中等”); else printf(“优秀”); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习4-1一、选择题1.已知:char c='A'; int i=1, j;,执行语句j=!c&&i++;,则i和j的值是(C B )。

A.1,1 B.1,0 C.2,1 D.2,02.已知:int x=1, y=2, z;,则执行z=x>y?++x:++y;,则z的值为( C )。

A.1 B.2 C.3 D.43.已知:int a=4, b=5, c;,则执行表达式c=a=a>b后变量a的值为( A )。

A.0 B.1 C.4 D.54.已知:char ch='A';,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的值是( B )。

A.'A' B.'a' C.'Z' D.'z'5.若w=1, x=2, y=3, z=4;,则条件表达式w>x?w:y<z?y:z的结果为(B )。

A.4 B.3 C.2 D.16.已知:int w=3, x=10, z=7;,则执行下面语句后的结果为( C )。

printf("%d",x>10?x+100:x-10);printf("%d",w++||z++);printf("%d",!w>z);printf("%d",w&&z);A.0111 B.1111 C.0101 D.01007.已知:a=b=c=1且a、b、c均为int型变量,执行以下语句:++a||++b&&++c;则变量a值为(C ①),b值为( ②B A)。

①A.不正确B.0 C.2 D.1②A.1 B.2 C.不正确D.08.执行下面语句后x的值为(D )。

int a=14, b=15, x;char c='A';x=((a&b)&&(c<'a'));A.TRUE B.FALSE C.0 D.19.要判断char型变量m是否是数字,可以使用下列表达式( A B )。

A.0<=m&&m<=9 B.'0'<=m&&m<='9'C."0"<=m&&m<="9" D.前面三个答案均是错误的10.能正确表示“当x取值在[1..10]和[200..210]范围内为真,否则为假”的表达式是( C )。

A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B.(x>=1)||(x<=10)||(x>=200)||(x<=210)C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)11.设x、y和z是int型变量,且x=3, y=4, z=5,则下面表达式中值为0的是( D )。

A.'x'&&'y'B.x<=y C.x||y+z&&y-z D.!((x<y)&&!z||1) 12.已知x=43, ch='A', y=0;,则表达式x>=y&&ch<'B'&&!y的值是( C )。

A.0 B.语法错C.1 D.“假”13.判断char型变量c1是否为小写字母的正确表达式为( D )。

A.'a'<=c1<='z' B.(c1>=a)&&(c1<=z)C.('a'>=c1)||('z'<=c1) D.(c1>='a')&&(c1<='z')二、读程序、写结果14.下面程序的运行结果:①(17 )、②( 102 )、③(6 9)、④(0 127 )、⑤( 0,-1,0 00-1)。

#include <stdio.h>main(){ int i=16, j, x=6, y, z;j=i+++1; printf("%d\n", j); /*输出①*/x*=i=j; printf("%d\n", x); /*输出②*/x=1; y=2; z=3;x+=y+=z;printf("%d\n", z+=x>y?x++:y++); /*输出③*/x=0x02ff; y=0xff00;printf("%d\n", (x&y)>>4|0x005f); /*输出④*/x=y=z=-1;++x||++y&&++z;printf("%d%d%d\n", x, y, z); /* ⑤*/}练习4-2一、选择题1.下面程序的输出是(A )。

#include <stdio.h>main(){int x=1, y=0, a=0, b=0;switch (x){ case 1: switch (y){ case 0: a++; break;case 1:b++; break;}case 2: a++; b++; break;}printf("a=%d, b=%d\n", a, b);}A .a=2, b=1B .a=1, b=1C .a=1, b=0D .a=2, b=22.若有说明:int x ,y;,不能实现以下函数关系的程序段是( B )。

()()()⎪⎩⎪⎨⎧>=<-=000101x x x y A .if (x<0) y=-1; B .y=-1; C .y=0; D .if (x>=0) else if (x==0) y=0; if (x!=0) if (x>=0) if (x>0) y=1; else y=1; if (x>0) y=1; { if (x>0) y=1; } else y=0; else y=0; else y=-1; else y=-1;3.已知:int x, a, b;,下列选项中错误的if 语句是(A B )。

A .if (a=b) x++;B .if (a=<b) x++;C .if (a-b) x++;D .if (x) x++;4.若int i=10;,执行下列程序后,变量i 的正确结果是( D )。

switch (i){case 9: i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;}A .10B .11C .12D .135.设有说明语句:int a=1, b=0;,则执行以下语句后输出为( B )。

switch (a){case 1: switch (b){ case 0: printf("**0**"); break;case 1: printf("**1**"); break;}case 2: printf("**2**"); break;}A.**0** B.**0****2** C.**0****1****2** D.有语法错误6.阅读下列程序,其运行结果是(DA )。

#include <stdio.h>main(){char c='A';if ('0'<=c<='39') printf("YES");else printf("NO");}A.YES B.NO C.YESNO D.语句错误7.下列程序的运行结果为( C )。

#include <stdio.h>main(){int a=2, b=-1, c=2;if (a<b)if (b<0) c=0;else c+=1;printf("%d\n", c);}A.0 B.1 C.2 D.38.阅读程序,其运行结果是( D C)。

#include <stdio.h>main(){int a=-1, b=1, k;if ((++a<0)&&(b--<=0)) printf("%d %d\n", a, b);else printf("%d %d\n", b, a);}A.-1 1 B.0 1 C.1 0 D.0 09.选择运行结果。

#include <stdio.h>main(){char ch;ch=getch();switch (ch){ case 65: printf("%c", 'A');case 66: printf("%c", 'B');default:printf("%s\n", "other");}}如程序可以正常运行,当从键盘输入字母A时,输出结果为(B )。

A.A B.ABother C.Aother D.编译错误,无法运行10.当a=1, b=3, c=5, d=4时,执行完成下面一段程序后x的值是( B )。

if (a<b)if (c<d) x=1;else if (a<c)if (b<d) x=2;else x=3;else x=6;else x=7;A.1 B.2 C.3 D.6二、填空题11.以下程序的输出结果是( -1 )。

main(){ int a=100, x=10, y=20, ok1=5, ok2=0;if (x<y)if (y!=10)if (!ok1) a=1;else if (ok2) a=10;a=-1;printf("%d\n",a);}12.阅读以下程序:main(){ int t, h, m;scanf("%d", &t);h=(t/100)%12;if (h==0) h=12;printf("%d:", h);m=t%100;if (m<10) printf("0");printf("%d",m);if (t<1200||t==2400) printf("AM");else printf("PM");}若运行时输入:1605<CR>,程序的运行结果是( 416PM)。

相关文档
最新文档