目录
实验1 C程序运行环境及简单程序的运行 (1)
习题1 (1)
实验2 数据类型、运算符和表达式 (2)
习题2 (3)
实验3 顺序结构程序设计 (5)
习题3 (6)
实验4 选择结构程序设计 (8)
习题4 (9)
实验5 循环结构程序设计 (11)
习题5 (13)
实验6 数组程序设计 (18)
习题6 (20)
实验7 函数程序设计 (24)
习题7 (26)
实验8 指针程序设计 (29)
习题8 (30)
实验1 C程序运行环境及简单程序的运行
一改错题
在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。
(1)下列程序的功能为:计算x*y的值并将结果输出;请纠正程序中存在错误(程序中有8处错误),使程序实现其功能,程序以文件名sy1_2.c存盘。
#include
main
{ int x=2;y=3;a
A=x*y
print ('a=%d",a);
printf("\n");
}
(2)下列程序的功能为:计算圆面积并将结果输出;请纠正程序中存在错误(程序中有8处错误),使程序实现其功能,程序以文件名sy1_3.c存盘。
#include stdio.h;
main();
float r;area;
r=5.0;
area=3.14159r*r;
printf("area=%d\n",area)
习题1
一、选择题
1.C源文件的扩展名为()A)cpp B)txt C)c D)exe
2.C的合法注释是()A) /*This is a C program /* B) /* This is a C program */
C) */This is a C program */ D) /* This is a C program
3.C语言中语句的结束符是()A), B); C)。 D)、
4.以下叙述正确的是()A)组成C程序的是语句
B)组成C程序的是main()函数
C)C程序总是从main()函数开始执行
D)C程序中,注释只能位于一条语句之后
5.在一个C语言程序中下列说明正确的是()A)main()函数必须出现在所有函数之前
B)main()函数可以在任何地方出现
C)main()函数必须出现在所有函数之后
D)main()函数必须出现在固定位置
6.C语言程序的基本单位是()A)程序 B)语句 C)字符 D)函数
7.main()函数后面的一对圆括号()A)必须有 B)可有可无 C)不需要 D)仅有main()一个函数时才需要
8.以下叙述正确的是()A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
9.编译程序的功能是 ( ) A)建立并修改程序 B)将C源程序编译成目标程序
C)调试程序 D)命令计算机执行指定的操作
10.二进制语言是属于()A)面向机器语言B)面向问题语言C)面向过程语言D)面向汇编语言
二、填空题
1.C程序是由函数构成的。其中有并且只能有个主函数。一个函数由两部分组成:函数的首部和。
2.C程序必须要有一个函数,而且只能有一个。C语言程序总是从函数开始执行,并且终止于该函数。
3.用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
4.C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。
实验2 数据类型、运算符和表达式
2.改错题
在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。
(1)下列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误(程序中有7处错误),使程序实现其功能,程序以文件名sy1_6.c存盘。
#include stdio.h
main();
{ float r=10,h=5;
v=1/3*3.14159*r^2*h;
printf("v=%d\n",v)
}
3.程序填空
(2) 下列程序的功能为:从键盘输入3个整数分别存入变量a、b、c,然后,将变量a 的值存入变量b,将变量b的值存入变量c,将变量c的值存入变量a,输出经过转存后变量a、b、c的值。(提示:使用中间变量)。请填写适当的符号或语句,使程序实现其功能,程序以文件名sy1_9.c存盘。
#include
main ()
{
int a,b,c, ;
printf("Please input a,b,c: ");
scanf("%d%d%d", );
;
;
;
;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
习题2
一、选择题
1.以下关于C语言用户标识符的正确叙述是()
A)用户标识符中可以出现下划线和中划线(减号)
B)用户标识符中不可以出现中划线,但可以出现下划线
C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
2.下列符号串中,属于C语言合法标识符的是()
A)else B)a-2 C)_123 B)123
3.下面不正确的C语言字符串常量是()
A) 'abcdef ' B) "2121" C) "8" D) " "
4.以下选项中合法的C语言字符常量是()
A) ‘\082 ' B) "B" C) ‘ab’ D) ‘\x43’
5.字符串“pm\x56\\\n\102wq”的长度是()
A) 8 B) 10 C) 16 D) 17
6.在C语言中,5种基本数据类型的存储空间长度的排列顺序为()
A) char B) char=int C) char D) char=int=long int<=float 7.在C语言中,要求运算数必须是整型的运算符是() A)/ B)++ C)!= D)% 8.下列表达式中,不属于逗号表达式的是 ( ) A )a =b,c B )a,b =c C )a =(b,c) D ) a,(b =c) 9.执行语句“x=(a=3,b=a--);”后,x ,a ,b 的值依次为( ) A )3,3,2 B )2,3,2 C )3,2,3 D )2,3,3 二、填空题 1.C 语言所提供的基本数据类型包括:单精度型、双精度型、 、 2.若x 和n 均是int 型变量,且x 的初值为12,n 的初值为5,则计算表达式x%=(n%=2)后,变量x 的值为 3.若定义int m=8,y=3;则执行y*=y+=m-=y ;后y 的值是 4.若定义int b=18;float a=3.5,c=6.7;则下面表达式的值为________ a+(int)(b/3*(int)(a+c)/2)%4 5.表达式 5.7 + 2/19= 。若定义int a=4,b;则表达式(b=6*5,a*4),a+16的值是______ 6.将数学式b a x )(sin 2转换成C 语言表达式为: 7.运算符“++”、“,”、“%”、“=”中,优先级最高的是________ 8.十进制数123,转换为二进制数为 ,转换为八进制数为 ,转换为十六进制数为 9.设整型变量 x 、y 、z 均为3,则执行"x-=y-x"后,x= ,执行"x%=y+z"后,x= 三、读程序,写结果 1. #include main( ) { int i,j,m,n; i=(j=5,m=j--); n=++j; printf("%d,%d,%d,%d\n",i,j,m,n); } 3. #include main( ) { char a =?B?,b=33; a=a-'A'+'0';b*=2; printf("%c%c\n",a,b); } 实验3 顺序结构程序设计 1.改错题 在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。 (1)下列程序的功能为: 输入一个华氏温度,要求输出摄氏温度。公式为:C= )32(9 5 F ,输出取2位小数。请纠正程序中存在的错误(程序中有3处错误),使程序实现其功能,程序以文件名sy2_1.c 存盘。 #include float c ,f ; printf("请输入一个华氏温度:\n"); scanf("%f",f); c==(5/9)*(f-32); printf("摄氏温度为:%5.2f\n"c); } (2)下列程序的功能为:按下列公式计算并输出x 的值。其中a 和b 的值由键盘输入。 x=2ab/(a+b)2 请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy2_2.c 存盘。 #include { int a,b; float x; scanf("%d,%d",a,b); x=2ab/(a +b)(a +b); printf("x=%d \n",x); } (3)下列程序的功能为:从键盘输入一个大写字母,要求改用小写字母输出。请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy2_3.c 存盘。 #include char c1,c2; c1=getchar; /* 输入大写字符 */ printf("%c,%d\n",c1,c1); c2=c1+26; /* 转变为小写 */ printf("%c,%d\n",c2,c2); /* 输出 */ } 2.程序填空 (1)下列程序的功能为:给定格式输入数据,按输出要求输出结果,请填写适当的符号或语句,使程序实现其功能,程序以文件名sy2_4.c存盘。 输入形式enter x,y:2 3.4 输出形式x+y=5.4 #include main() { int x; float y; printf ("enter x,y: "); } 习题3 一、选择题 1.C语言中数据的输入和输出由()完成。 A)语句 B)函数 C)表达式 D)命令 2.要输入实数,用格式字符()。 A)%d B)%c C)%f D)%s 3.格式说明由()和格式字符组成。 A)% B)\ C)’ D)” 4.要输出double型的数据,用() A)%f B)%lf C)%d D)%c 5.从终端输入一个字符,可以用函数() A)getchar( ) B)putchar( ) C)gets( ) D)puts( ) 6.putchar( )函数可以向终端输出一个() A)整型变量表达式 B)实型变量值 C)字符串 D)字符或字符型变量 7.要实现多个混合数据的输入输出,用函数() A)getchar( ),putchar( ) B)getchar( ),printf( ) C)scanf( ),printf( ) D)scanf( ),putchar( ) 8.设n=10,i=4、则赋值运算n%=i+1执行后,n的值是( ) A)0 B)3 C)2 D)1 9.设变量a是整型,f是实型,i是双精度型,则表达式10+ 'a '+i*f值的数据类型为( ) A)int B)float C)double D)不确定 10.有以下程序: main( ) { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d,%d,%d\n",m,n,p); } 若想从键盘上输入数据,使变量m的值为123,n的值为456,p的值为789,则正确的输入是() A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 二、填空题 1.要使用标准的I/O库函数,必须在程序的开头加上文件包含命令。2.格式化输出函数是,它的功能是按照用户指定的格式,在标准输出设备上输出数据。 3.%m.nf表示数据输出的总宽度占列,其中小数部分占列。 4.格式化输入函数是,它的功能是按照指定格式要求,从终端把数据依次传送到输入项地址列表所指定的内存空间中。 5.语句printf ("%3s,%7.2s,%.4s,%-5.3s\n", "CHINA","CHINA", "CHINA", "CHINA" ); 执行后的结果为_________________________________ 6.若有定义char c1='A',c2='D';已知字符?A?的ASCII码值是65,则执行语句printf("%d,%c",c1,c2-2);后的输出结果是 9.#include main() { float x,y,z; scanf(" ", ); z=2*x*sqrt(y); printf("z=%5.2f",z); } 10.#include main() { char ch; =getchar( ); putchar( ); } 实验4 选择结构程序设计 1.改错题 在程序中画出错误的语句,将修改后的语句完整地写在该语句的右边。 (1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy3_1.c存盘。 #include main() { char ch,c1,c2; printf("Enter a character:"); ch=getchar(); if((ch>='a')||(ch<='z')) ch-=32; c1=ch-1; c2=ch+1; if(ch='A') c1=ch+25; else if(ch='Z') c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar('\n'); } 2.程序填空 (1) 下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。 若该字符是数字输出字符串"0-9" 若该字符是大写字母输出字符串"A-Z" 若该字符是小写字母输出字符串"a-z" 若该字符是其他字符输出字符串"!,@,…" 请填写适当的符号或语句,使程序实现其功能,程序以文件名sy3_4.c存盘。 #include main() {char c; scanf(_____________________); if(c>= '0' &&c<='9') __________________________ else if(________________________) printf("A-Z\n"); ___________( c >='a' &&c<='z') printf("a-z\n"); _____________________ printf("!,@,…\n"); } 3.编程题 (1)编写一个程序实现如下功能:从键盘输入三个整数,输出这三个整数的和、平均值(保留2位小数)、积、最小值以及最大值(程序以文件名sy3_7.c存盘)。 (2)编写一个程序实现如下功能:输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变(程序以文件名sy3_8.c存盘)。 习题4 一、选择题 1.逻辑运算符两侧运算对象的数据类型( ) A) 只能是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据 2.以下关于运算符优先顺序的描述中正确的是( ) A) 关系运算符<算术运算符<赋值运算符<逻辑与运算符 B) 逻辑与运算符<关系运算符<算术运算符<赋值运算符 C) 赋值运算符<逻辑与运算符<关系运算符<算术运算符 D) 算术运算符<关系运算符<赋值运算符<逻辑与运算符 3.要判断char型变量m是否是数字字符,可以使用表达式( ) A) 0<=m && m<=9 B) '0'<=m && m<='9' C) "0"<=m && m<="9" D) 0<=m & m<=9 4.设x,y和z是int型变量,且x=1,y=2,z=3,则下面表达式中值为0的是( ) A) x&&y B) x<=y C) x||y+z&&y-z D) !((x 5.为了避免嵌套的if-else语句的二义性,c语言规定else总是与( )组成配对关系。 A)缩排位置相同的if B)在其之前末配对的if C)在其之前未配对的最近的if D)同一行上的if 6.假设有定义int a=1,b=2,c=3,d=4,m=2,n=2。则执行表达式: (m=a>b&&(n=c>d)后,n的值为( ) A)1 B)2 C)3 D)4 7.运行下列程序,其输出结果为() #include main( ) { int a=2,b=-1,c=2; if (a if (b<0) c=0; else c++; printf(“%d”,c); } A)0 B)1 C)2 D)3 8.以下叙述中正确的是() A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但必须要有输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出 9.执行以下程序后的输出结果是() main() { int a,b,d=25; a=d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); } A)6,1 B)2,1 C)6,0 D)2,0 10.下列运算符中优先级最低的是(),优先级最高的是( ) A)?: B)&& C)+ D)!= 二、填空题 1.C语言提供的3种逻辑运算符是、、 2.执行下述语句后,a= ,b= ,m= ,n= int a=1, b=2, c=3, d=4, m=5, n=6; a = ( m=a> b ) && ( n =c>d ) || ++a = = b--; 3.有int x,y,z;且x=4,y=-5,z=6,则以下表达式的值为 !(x>y)+(y!=z)||(x+y)&&(y-z) 4.当a=1,b=2,c=3时,表达式x=a>b>c的值是 5.对n(>0)个人进行分班,每班k(>0)个人,最后不足k人也编一班,试用条件表达式表示要编班。 6.若有定义int a=10,b=20,c;则执行c=(a%b<1)||(a/b>1);后c的值为 7.若有定义int a=2,b=-1,c=2;则执行if (a 8.能正确表示x≤-5或x≥5关系的C语言表达式是 9.假定所有变量均已正确说明,执行下述程序段后x的值是 a=b=c=0; x=35; if (!a) x--; else if (b) if (c) x=3; else x=4;