基本语句练习
1、若有以下程序段
#include”stdio.h”
void main( )
{ int a=2,b=5;
Printf(“a=%%d,b=%%d\n”,a,b);
}
其输出结果是(D)
A、a=%2,b=%5
B、a=2,b=5
C、a=%%d,b=%%d
D、a=%d,b=%d
2、以下程序段
float a=3.1415; printf(“|%6.0f|\n”,a);
其输出结果是(C)
A、|3.1415|
B、|3.0|
C、| 3|
D、|3.|
3、以下程序段的输出结果是( C )
float a=57.666; printf(“*%010.2f*\n”,a);
A、*0000057.66*
B、*57.66*
C、*0000057.67*
D、*57.57*
4、下面语句printf(“|%8.5f|\n”,3461.45); 的输出结果是(C )
A、|61.45000|
B、|3461.450|
C、|3461.45000|
D、|3461.4500|
5、若变量都已经正确说明,则以下程序段: C
a=2; b=3; printf(a>b? “***a=%d”: “###b=%d”,a,b);
A、没有正确的输出格式控制
B、输出为:***a=2
C、输出为:###b=2
D、输出为:***a=2###b=3
6、执行下列程序时输入1234567,程序的运行结果为(B)
#include”stdio.h”
void main( )
{int x, y;
scanf(“%2d%2ld”,&x,&y);
printf(“%d\n”, x+y);
}
A、17
B、46
C、15
D、9
7、已知char a; int b; float c; double d; 则表达式a*b+c-d结果为(A)型。
A、double
B、int
C、float
D、char
8、根据定义和数据的输入方式,输入语句的正确形式是(B)
已有定义float f1, f2;
数据的输入方式:4.52
3.5
A、scanf(“%f,%f”,&f1,&f2);
B、scanf(“%f%f”,&f1,&f2);
C、scanf(“%3.2f%2.1f”,&f1,&f2);
D、scanf(“%3.2f, %2.1f”,&f1,&f2);
9、以下程序的输出结果为(*3.140000, 3.142* )
#include”stdio.h”
void main( )
{printf( “ *%f, %4.3f*\n”, 3.14, 3.1415);}
10、结构化程序流程图中一般包含3种基本结构,在下述结构中不属于其基本结
构的是(B )。
A、顺序结构
B、嵌套结构
C、循环结构
D、选择结构
11、若有语句:int a=7; float x=2.5, y=4.7; 则表达式x+a%3×(int) (x+y)%2/4的值是( A )。
A、2.500000
B、2.750000
C、3.500000
D、0.000000
12、设有说明语句:int x=43, y=0; char ch=?A?; 则表达式x>=y && ch
A、语法错误
B、0
C、假
D、1
13、若a为int类型,且其值为3,则执行完表达式a+=a*a后,a的值是_12_。
14、int a; 表达式(a=3*4, a*2), a+8的值为___20____。
15、表达式8.0*(1/2)的值为 0 。
16、下列符号中,可以作为变量名的是(C)。
A、3aB
B、$X
C、_b
D、if
17、设int x=1,y=1;表达式(!x||y)的值是( B )。
A、0
B、1
C、2
D、-1
18、下列标识符中,合法的标识符是( C )。
A、—abc1
B、8abc
C、_abc1
D、for
19、下列关系表达式中结果为假的是(C)。
A、0!=1
B、2<=8
C、(a=2*2)= =2
D、y=(2+2)= =4
选择结构
1、对下述程序,正确的判断是(A )
#include”stdio.h”
void main( )
{int x, y;
scanf(“%d, %d”, &x, &y);
if(x>y)
x=y; y=x;
else
x++; y++;
printf(“%d,%d”, x,y);
}
A、有语法错误,不能通过编译
B、若输入数据3和4,则输出4和5
C、若输入数据4和3,则输出3和4
D、若输入数据4和3,则输出4和4
2、以下程序的输出结果是(B )
#include”stdio.h”
void main( )
{ int x=1,y=0,a=0,b=0;
switch(x)
{case 1:
switch(y)
{ case 0: a++;break; a=1
case 1: b++; break;
}
case 2:
a++; b++;break; a=2 b=1
case 3:
a++;b++;
}
printf(“\na=%d,b=%d”,a,b);
}
A、a=1,b=0
B、a=2,b=1
C、a=1, b=1
D、a=2, b=2
3、以下程序的输出结果是(C )
#include”stdio.h”
void main( )
{ int a=2, b=—1, c=2;
if(a
if(b<0) c=0;
else c+=1;
printf(“%d\n”,c);
}
A、0
B、1
C、2
D、3
4、以下程序的输出结果是(A )
#include”stdio.h”
void main( )
{ int w=4, x=3, y=2, z=1;
Printf(“%d\n”,(w } A、1 B、 2 C、3 D、4 5、以下程序的运行结果是(B) #include”stdio.h” void main( ) {int k=2; switch(k) { case 1: prinft(“%d\n”,k++); break; case 2: printf(“%d\n”,k++); k=2 case 3: printf(“%d\n”,k++); break; k=3 case 4: printf(“%d\n”,k++); default:printf(“Full!\n”); } } A、1 B、2 C、2 D、3 3 3 2 2 6、请写出以下程序的输出结果(1 ) #include”stdio.h” void main( ) { int a=100; if(a>100) printf(“%d\n”, a>100); else printf(“%d\n”, a<=100); } 7、当a=1,b=2,c=3时,以下语句执行后,a,b,c中的值分别是3、2、2。if(a>c) b=a;a=c;c=b; 8、若变量已经正确定义,以下语句段的输出结果是—* #—。 x=0;y=2;z=3; switch(x) { case 0:switch(y= =2) { case 1: printf(“*”); break; case 2: printf(“%”);break; } case 1: switch(x) { case 1: printf(“$”); case 2: printf(“*”); break; * Default: printf(“#”); # } } 9、如下程序的输出结果是(C) #include”stdio.h” void main( ) { int a=12,b=5,c= —3; if (a>b) if(b<0) c=0; else c++; printf(“%d\n”,c); } A、0 B、1 C、-2 D、-3 10、以下程序运行后,如果从键盘输入5,则输出结果是(B )#include”stdio.h” void main( ) { int x; scanf(“%d”,&x); if(x――<5) printf(“%d”,x); else printf(“%d”,x++); } A、3 B、 4 C、5 D、6 11、以下程序的输出结果是(A) #include”stdio.h” void main( ) { int a=15, b=21, m=0; switch(a%3) { case 0: m++; break; case 1: m++; switch(b%2) {default : m++; case 0: m++; break: } } printf(“%d\n”,m); } A、 1 B、 2 C、3 D、4 12、两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是(A )#include”stdio.h” void main( ) { int x; scanf(“%d”,&x); if(x++>5) printf(“%d”,x); else printf(“%d\n”,x ——);} A、7和5 B、6和3 C、7和4 D、6和4 13、以下程序的输出结果是(C ) #include”stdio.h” void 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 B、0 C、1 D、0 1 1 0 0 14、以下关于运算符优先顺序的描述中正确的是(C ) A、关系运算符<算术运算符<赋值运算符<逻辑运算符 B、逻辑运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑运算符 16、若从键盘输入58,则以下程序输出的结果是(58 58 58 )# include”stdio.h” void main( ) {int a; scanf(“%d”,&a); if(a>50) printf(“%d”,a); if(a>40) printf(“%d”,a); if(a>30) printf(“%d”,a); } 17、以下程序输出的结果是(0 )????? #include”stdio.h” void main( ) { int a=5, b=4,c=3,d; d=(a>b>c); printf(“%d\n”,d); } 18、以下程序输出的结果是(20,0 ) #include”stdio.h”: void main( ) { int x=10, y=20, t=0; if(x= =y) t=x; x=y; y=t; printf(“%d,%d\n”,x ,y); } 19、int a=2, b=3, c=4; 则执行语句a *=16+(b++) –(++c); 后a的值是(28 )。 20、以下程序的输出结果是(2 ) #include”stido.h” main( ) {int x=2, y= -1, z=2; if(x if(y<0) z=0; else z+=1; printf(“%d\n”,z); } 20、若从键盘输入B,则以下程序输出的结果是_>=60___<60__ main( ) {char grade;scanf("%c",&grade); case …A?: printf(">=85\t"); case ?B?: case ?C?: printf(">=60\t"); case?D?: printf("<60\t"); } 循环结构 1、下述for循环语句(B ) int i, k; for(i=0, k= -1; k=1; i++, k++) printf(“***”); A、判断循环结束的条件非法 B、是无限循环 C、只循环一次 D、一次也不循环 2、以下程序的输出结果是(A ) #include”stdio.h” void main( ) { int i; for(i=1;i<=5; i++) { if(i%2) putchar(…); else continue; putchar(…>?); } putchar(…#?); } A、< > < >< ># B、>< > < > < # C、< > < ># D、>< > <# 3、以下程序段的输出结果是(C ) int x=3; do { printf(“%d”,x-=2); } while(!(--x)); A、1 B、3 0 C、1 -2 D、死循环 4、以下程序的输出结果是(B ) #include”stdio.h” void main( ) { int y=10; for( ; y>0; y――) if( y%3 = =0) { printf(“%d”,――y); continue; } } A、741 B、852 C、963 D、8754321 5、若x是int型变量,以下程序段的输出结果是(D ) for(x=3;x<6;x++) printf ((x%2)?(“ **%d”):(“##%d\n”), x); A、**3 B、##3 C、##3 D、**3##4 ##4 **4 **4##5 **5 **5 ##5 6、以下程序的输出结果是(—1) #include”stdio.h” void main( ) { int x=2; while(x――); printf(“%d”,x); } 7、以下程序段的输出结果是(11 ) int i=0,sum=1; do {sum+=i++;} while(i<5); printf(“%d\n”,sum); 8、下述程序的运行结果是(s=3 )#include”stdio.h” void main( ) { int s=0,k; for(k=7;k>4;k——) { switch(k) { case 1: case 4: case 7: s++; break; case 2: case 3: case 6: break; case 0: case 5: s+=2;break; } } printf(“s=%d”,s); } 9、下面程序输出结果是(%@%@%@ ) #include”stdio.h” void main( ) { int a; for(a=0; a<6;a++) { if(a%2) printf(“%%”); else continue; printf(“@”); } printf(“\n”); } 10、以下循环体的执行次数是(C ) #include”stdio.h” void main( ) { int i,j; for(i=0,j=1;i<=j+1;i+=2,j——) printf(“%d\n”,i); } A、3 B、2 C、1 D、0 11、以下程序中,while循环的次数是(D )#include”stdio.h” void main( ) {int i=0; while(i<10) {if(i<1) continue; if(i= =5) break; i++; } } A、1 B、10 C、6 D、死循环,不能确定次数 12、以下for循环的循环次数(C ) for(x=0,y=0;(y!=123)&&(x<4); x++); A、无限循环 B、循环次数不定 C、循环执行4次 D、循环执行3次 13、执行下面程序片段的结果是(23 ) int x=23; do { printf(“%d”,x--); }while(!x) A、321 B、23 C、没有输出 D、死循环 13、下面程序的输出结果是(D ) #include”stdio.h” void main( ) { int k,j,m; for(k=5;k>=1; k- -) { m=0; for(j=k; j<=5; j++) m=m+k*j; } printf(“d\n”,m); } A、124 B、25 C、36 D、15 14、下面程序的输出结果是(D ) #include”stdio.h” void main( ) {int x=10, y=10,i; for(i=0;x>8;y=++i) printf(“%d %d”,x- -, y); } A、10 1 9 2 B、9 8 7 6 C、10 9 9 0 D、10 10 9 1 15、下面程序段的输出结果是(A ) a=1; b=2; c=2; while(a printf(“%d,%d,%d”,a,b,c); A、1,2,0 B、2,1,0 C、1,2,1 D、2,1,1 16、若有如下语句,则程序段(B ) int x=6; do{printf(“%d\n”, x - =2); } while( - -x); A、输出的是1 B、输出的是4和1 C、输出的是3和0 D、死循环 17、下面程序的功能是计算1~10之间的奇数之和与偶数之和,请填空。 #include”stdio.h” void main( ) { int a, b, c,i; a=c=0; for(i=0; i<=10; i+=2) { a+=i; ___if(i<10)___; c+=b; } } printf(“%d”, a); printf(“%d”,c); } 18、以下程序的输出结果是(52 ) #include”stdio.h” void main( ) { int i=10, j=0; do { j=j+i; i- -; }while( i>2); printf(“%d\n”,j); } 19、有以下程序 #include”stdio.h” void main( ) { char c; while( (c=getchar( ))!=??? ) putchar( - -c); } 程序运行时,如果从键盘输入:Y?N? 则输出结果是(X ); 20、下面程序段的运行结果是(** ) x=2; do {printf(“*”); x- - ;} while(x); 21、下面程序的运行结果是(1,-2 ) #include”stdio.h” void main( ) { int y,a; y=2; a=1; while(y--!= —1) 填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有: 实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p 单选题 1、下列语言中不属于计算机语言的三大类的是(C)。 A.机器语言 B.汇编语言 C.脚本语言 D.高级语言 2、下列说法中不正确的是(C) A.计算机语言大致可分为三大类,即机器语言、汇编语言和高级语言 B.C语言是一种通用的、过程式的编程语言,具有高效、灵活、可移植等优点 C.C语言属于汇编语言 D.高级语言比汇编语言更贴近于人类使用的语言,易于理解、记忆和使用 3、以下开发工具中不属于主流的开发工具的是(B) A.Visual Studio B.Xcode C.Code::Block D.Eclipse 4、下列选项是对主流开发工具的介绍,其中错误的是(B) A.Visual Studio支持C/C++、C#、F#、VB等多种程序语言的开发和测试 B.Code::Block是一个免费的跨平台IDE,支持C、C++和Fortan程序的开发 C.Eclipse是一种被广泛使用的免费跨平台IDE,最初由IBM公司开发 D.Vim是一款功能非常强大的IDE ( 和其他IDE不同的是,Vim本身并不是一个用于开发计算机程序的IDE,而是一款功能非常强大的文本编辑器,它是UNIX系统上Vi编辑器的升级版。) 5、下列选项中,不属于开发一个C语言应用程序的具体实现步骤的是(A) A.启动开发工具 B.添加源文件 C.编写代码 D.运行程序 6、下列选项中,关于main()函数叙述不正确的是(C) A.一个完整的C语言程序中,有且只能有一个main()函数 B.main()函数是程序的主入口,程序总是从main()函数开始执行 C.如果没有声明main()函数,程序将从第1行开始执行 D.main()函数可以有返回值,也可以没有返回值 7、下面程序中,合法的选项是(D) A.#includeint main() { printf("hello world\n"); return 0; } B.#includeint man() { printf("hello world\n"); return 0; } C.#includeint main() { printf("hello world\n") return 0; } D.#includeint main() { print("hello world\n"); return 0; } 8、下面程序中,运行结果为“1,2”的是(A) A.#includeint main() { int a = 1; int b = 2; printf("%d %d\n",a,b); return 0; } B.#includeint main() { int a = 1; int b = 2; printf("%d,"a); printf("%d\n",b); return 0; } C.#includeint main() { int a = 1, b = 2; printf("%d,,%d\n",a,b); return 0; } C程序设计第三版答案 1.5请参照本章例题,编写一个C程序,输出以下信息:************ Very Goodj! ************ 解: main() { printf(" ************ \n"); printf("\n"); printf(" Very Good! \n"); printf("\n"); printf(" ************\n"); } 1.6编写一个程序,输入a b c三个值,输出其中最大者。解:main() {int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max if(max 《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB 作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( #include 《C程序设计》试题 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() 3. 不是C语言实型常量的是:() .字符串“xyzw”在内存中占用的字节数是:() 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) ,2 ,3 ,2 ,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是: =,b=3 = b=3 3 表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>yx:m 第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10 6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。 面向对象程序设计期末综合练习二(填空题) 填空题 1.C++ 语言是在 _________语言的基础上发展起来的。 2.C++ 语言的编译单位是扩展名为 __________的 __________文件。 3.行尾使用注释的开始标记符为 __________ 。 4.多行注释的开始标记符和结束标记符分别为__________ 和 __________。 5.用于输出表达式值的标准输出流对象是_________。 6.用于从键盘上为变量输入值的标准输入流对象是________。 7.一个完整程序中必须有一个名为 ________的函数。 8.一个函数的函数体就是一条 _________语句。 9.当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 10.在 C++程序中包含一个头文件或程序文件的预编译命令为__________。 11.程序中的预处理命令是指以______字符开头的命令。 12.一条表达式语句必须以 ______ 作为结束符。 13.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 ________定义的头文件。 14.使用 #include 命令可以包含一个头文件,也可以包含一个______文件。 15.一个函数定义由 ________和 ________两部分组成。 16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 17. C++头文件和源程序文件的扩展名分别为______和 ______。 18.程序文件的编译错误分为 ________和 ________两类。 19.当使用 _______保留字作为函数类型时,该函数不返回任何值。 20.当函数参数表用 ______保留字表示时,则表示该参数表为空。 21 .从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______ 个参数。 22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位置移动到 ________的开始位置。 23.假定 x=5,y=6,则表达式 x++*++y 的值为 __________ 。 24.假定 x=5,y=6,则表达式x--*--y的值为__________。 25.假定 x=5,y=6,则执行表达式 y*=x++ 计算后, x 和 y 的值分别为 __________和 __________ 。 26.假定 x=5,y=6,则执行表达式 y+=x-- 计算后, x 和 y 的值分别为 __________和 __________ 。 27.C++ 常数 0x145 对应的十进制值为 __________。 28.C++ 常数 0345 对应的十进制值为 __________ 。 29.十进制常数 245 对应的十六进制的 C++表示为 __________。 30.十进制常数 245 对应的八进制的 C++表示为 __________ 。 31.signed char类型的值域范围是________至__________之间的整数。 32.int和float类型的数据分别占用_________和__________个字节。 33.float和double类型的数据分别占用_________和________个字节。 34.bool和char类型的数据分别占用_________和________个字节。 35.unsigned short int和int类型的长度分别为_________和________。 《C语言程序设计》综合练习题与答案 一、简要问答下列问题 1.什么是源程序? 2.C语言源程序的编译过程是怎样的? 3.简述C语言的特点 4.C/C++程序都是由函数组成的,其中最主要的、不可缺少的函数是哪一个?举例说明该函数的结构。 5.函数的返回值是通过什么语句来实现的,它的格式是什么? 6.在编写C程序时,为什么要把库函数的头文件包含到用户源程序中?如何把用户的头文件包含到用户源程序? 7.在计算机中,存储的数据为什么要分成多种不同的数据类型? 8.什么是常量?什么是变量? 9.C语言的五种基本数据类型有哪些?它们的关键字和所占的字节数分别是什么? 10.判断标识符是否合法的三条规则是什么? 11.什么是C语言的关键字?关键字对标示符有何影响? 12.全局变量和局部变量有什么区别? 13.什么是空语句,什么是语句块? 14.结构化程序设计的三种基本结构是什么? 15.三种循环语句各有什么特点? 16.什么叫多重循环结构? 17.Continue语句与break语句有什么区别? 18.字符与字符串有什么区别?‘b’与“b”相同吗? 19.什么是数组?一维数组的定义形式是怎样的? 20.字符串的结束标记是什么? 21.什么是按位操作?C语言对按位操作有哪些要求? 22.什么是指针?指针的两个操作符表示什么意义? 23.指针和数组有什么关系? 24.指针有那几种算术运算?说明指针变量的算术运算与一般变量的算术运算有何区别? 25.函数是由哪三部分组成的?函数定义的一般形式是什么? 26.函数原型是什么情况下使用?有什么作用? 27.形参和实参有什么关系,函数的两种调用方式是什么? 28.什么是函数的递归调用? 29.什么是函数指针?说明定义函数指针的一般形式。 30.什么是内部函数?什么是外部函数? 31.C语言的四种用户定义数据类型是什么? 32.C系统提供的三种主要预处理功能是什么? 33.什么是文件包含? 34.什么是文件?什么是流? 第二章数据类型课后习题 1.下列哪些是合法的变量名?如果合法,你认为它是一个好的助记符(能提醒你它的用途)吗? (a) stock_code 合法、好的助记符 (b) money$ 非法,$为非法字符 (c) Jan_Sales 合法、好的助记符 (d) X-RAY 非法,–为非法字符 (e) int 非法,int为关键字 (f) xyz 合法、不是好的助记符 (g) 1a 非法,变量名必须以字母或下划线打头 (h) invoice_total合法、好的助记符 (i) john's_exam_mark非法,’为非法字符 (j) default 非法,default为关键字 2.请确定下列常量的数据类型: (a) 'x' char (b) -39 int (c) 39.99 double (d) -39.0 double 3.下列哪些是合法的变量定义? (a) integer account_code ; 非法,无integer类型 (b) float balance ; 合法 (c) decimal total ; 非法,无decimal类型 (d) int age ; 合法 (e) double int ; 非法,int为关键字,不能作为变量名 (f) char c ; 合法 4.写出下列各小题中的变量定义: (a) 整型变量number_of_transactions和age_in_years int number_of_transactions, age_in_years; (b) 单精度浮点型变量total_pay,tax_payment,distance和average float total_pay, tax_payment, distance, average; (c) 字符型变量account_type char account_type; (d) 双精度浮点型变量gross_pay double gross_pay; 5. 为下列各小题写出最合适的变量定义: (a) 班级中的学生人数int number_of_students; (b) 平均价格float average_price; (c) 自1900年1月1日以来的天数int days_since_1900; 1、分析下面程序: # include 因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include 一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES C语言练习题 (所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参 考使用) 1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。 #include 2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。 #include 一、选择题(蓝色加粗为正确选项) 在C语言中,合法的字符常量是()。 A. '字' B. "A" C. "ABC" D. '\x41' 在C语言中,用户能使用的合法标识符是()。 A. 姓名 B. _xyz C. 5i D. for 在C语言中,不合法的实型常量是()。 A. -0.123 B. -.123 C. -1.23e-1 D. -123e-3.0 C语言的下列运算符中,优先级最高的运算符是()。 A. ++ B. += C. || D. != 设有说明语句int k,i=5,j=10;,则表达式k=(++i)*(j--)的值是()。 A. 50 B. 60 C. 45 D. 55 设有说明语句int i,j;,则表达式i>=j||i C. TRUE D. 1 已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是()。main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A. 67,D B. C,D C. C,68 D. 67,68 设有语句int x=2,y=3;,则表达式x=(y==3)的值是()。 A. 0 B. 1 C. 2 D. 3 以下程序的运行结果是()。 main() { unsigned a = 0x3ef, b; b = a << 2; 页脚内容2 printf("%x,%x\n", a, b); } A. 3ef,fb B. 3ef,fbc C. fbc,3ef D. fbc,fbc 下列语句中,符合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; 为表示x≥y≥z,须用的C语言表达式为()。 A. (x>=y)&&(y>=z) B. (x>=y)AND(y>=x) C. x>=y>=z D. (x>=y)&(y>=z) 设int a,b;,用语句scanf('%d%d",&b); 输入a、b值时,不能作为输入数据分隔符的是()。 A. 空格 B. , C. 回车 D. [Tab] 以下程序运行时,若从键盘输入5,则输出结果是()。 main() { int a; 页脚内容3 第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67 3.4.3用printf函数输出数据68 3.4.4用scanf函数输入数据75 3.4.5字符数据的输入输出78 习题82 3-1 #include 《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0C程序设计题库
《C程序设计》作业内容
C语言程序设计程序填空题库及答案
C语言程序设计教程第一章练习题题目
C程序设计第三版答案
C语言程序设计作业参考答案
C语言程序设计期末考试试题(含答案)
《C程序设计》试题
C程序设计作业样本
C语言程序设计期末练习填空题.docx
《C语言程序设计》综合练习题与答案
C程序设计(双语版)习题答案
c程序设计作业
大学计算机C语言程序设计(填空题)
C语言程序设计练习题(含程序及参考答案)21182
C程序设计习题解答
《C语言程序设计》课后习题答案(第四版)谭浩强
C语言程序设计-作业与答案