C语言上机习题 (9)

合集下载

C语言上机练习题及答案

C语言上机练习题及答案

1输入三个整数*,y,z,把这三个数由小到大输出。

# include <stdio.h>void main(){int *,y,z,a;scanf ("%d,%d,%d",&*,&y,&z);if(*>y) {a=*; *=y;y=a;}if(*>z) { a=*; *=z; z=a;}if(y>z) {a=y; y=z; z=a;}printf("%d,%d,%d\n",*,y,z);}2输入圆的半径,输出圆的周长和面积。

# include<stdio.h># define PI 3.1415926# define S ==PI*r*r# define V (4.0/3)*PI*r*r*rvoid main(){double r;printf("please input r:");scanf("%lf",&r);printf("area is %.4lf\n",S);printf("volume is %.4lf\n",V);}输入正方形的边长,输出正方形的周长和面积。

# include<stdio.h>void main(){float c,zc,mj;printf("输入你的正方形");scanf("%f\n",&c);zc=4*c;mj=c*c;printf("周长%f,面积%f,边长%f",zc,mj,c);}3用格式输入函数输入3个字符,并用输出函数反向输出3个字符和他们的ASCII 码。

# include<stdio.h>int main(){char-ch1,ch2,ch3;printf("please input three characters:\n");scanf("%C%C%c",&ch1,&ch2,&ch3);printf("%c\n%d\n",ch3,ch3);printf("%c\n%d\n",ch2,ch2);printf("%c\n%d\n",ch1,ch1);}输入一个摄氏温度,要求输出华氏温度。

c语言循环结构上机习题

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/3100=x+y+z这里x,y,z为正整数,且z是3的倍数;由于鸡和钱的总数都是100,可以确定x,y,z 的取值范围:1) x的取值范围为1~202) y的取值范围为1~333) z的取值范围为3~99,步长为3对于这个问题我们可以用穷举的方法,遍历x,y,z的所有可能组合,最后得到问题的解。

C语言习题级答案9

C语言习题级答案9

测试题91.设有说明int (*ptr)[M];其中标识符ptr是(C)。

A、M个指向整型变量的指针B、具有M个指针元素的一维指针数组,每个元素都只能指向整型量C、一个指向具有M个整型元素的一维数组的指针D、指向M个整型变量的函数指针2.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,sum++,++num后sum的值为(A)。

A、8B、7C、10D、93.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(C)。

A、6B、-3C、-12D、94.当调用函数时,实参是一个数组名,则向函数传送的是(B)。

A、数组每一个元素的地址B、数组的首地址C、数组每个元素中的值D、数组的长度5.以下叙述不正确的是(B)。

A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序必须包含一个main函数D、一个C源程序可由一个或多个函数组成对于基本类型相同的两个指针变量之间,不能进行的运算是(A)。

A、+B、<C、=D、-fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(D)。

A、答案B和C都正确B、只写C、追加D、读或读写以下叙述正确的是(B)。

A、do-while语句构成的循环不能用其它语句构成的循环来代替.B、用do-while语句构成的循环,在while后的表达式为零时结束循环C、用do-while语句构成的循环,在while后的表达式为非零时结束循环.D、do-while语句构成的循环只能用break语句退出.C语言程序中必须有的函数是(C)A、#include "stdio.h"B、#include <string.h>C、mainD、printf以下不正确的说法是:C语言规定(B)。

A、实参可以为任何类型B、形参可以是常量,变量或表达式C、实参可以是常量,变量或表达式D、形参应与其对应的实参类型匹配一致11.已知int k=67; 则表达式k/10的值为; CA、6.70B、6.7C、6D、7static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'}; 说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是(B)。

C语言习题(8-9)

C语言习题(8-9)

C语言习题(8-9)一.填空题1.C语言中,将一个变量的地址称为______________,存放变量地址的变量称为______________。

2.设int a[10]={1,2,3}; 则*(a+3)的值是________________。

3.若使表达式p=”jiangsu”无任何错误(包括语法错误和警告),则p的定义语句为_____________。

4.若有下列定义和语句:int a[4]={0,1,2,3}, *p; p=&a[2];则*--p的值是_____________。

5.执行下列程序段后,变量a的值为_____________。

int *p,a,b=1; p=&a; *p=10; a=*p+b;6.设一个C程序中有如下定义:char line[]=”china”;char *ptr=line;则ptr中为_____________的地址,line[5]中为_____________,*(ptr+2)的值为_____________。

7.假定int型指针p所指对象的值为25,p+1所指对象的值为46,则执行”(*p)++;”语句后,p所指对象的值为_____________。

8.若要使指针p指向一个double型的动态存储单元,请在空白处填上适当的内容:p=____________malloc(sizeof(double));9.若有定义:int (*p)[4];则标识符p是_____________________________________________________。

10.struct student{ int num;char name[20];float score;}stu[3], *p; p=stu;写出通过p访问stu[0]中score成员的两种表达式___________________________________________。

二.选择题1.已有定义int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是_____________。

C语言习题集(含答案)

C语言习题集(含答案)

一、单选题:(1)在C语言提供的合法的关键字是( )A)swicth B) cher C)Case D)default(2)在C语言中,合法的字符常量是()A)’\084’ B) ’\x43’C)’ab’D) "\0”(3)若有定义和语句:char s[10]: s="abcd”;printf(”%s\n",s);则结果是(以下u代表空格)()A)输出abcd B)输出aC)输出abcduuuuu D)编译不通过(4) 若有定义和语句:int **pp, *p,a=10, b=20;pp=&p;p=&a; p=&b; printf("%d,%d\n",*p,**pp);则输出结果是:()A)10,20 B)10,10 C)20,10 D)20,20(5)若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n”,u, v, w);则输出结果是()A) 8,16,10B)10,10,10 C)8,8,10 D) 8,10,10 (6) 若有以下定义和语句char c1=' b', c2='e’;printf(”%d,%c\n", c2-c1,c2—'a’+”A");则输出结果是( )A)2,M B)3,EC)2,E ?D)输出项与对应的格式控制不一致,输出结果不确定(7)若有以下定义:char s[20]=”programming”,*ps=s;则不能代表字符o的表达式是( )A)ps+2 B) s[2]C) ps[2]D) ps+=2,*ps(8)若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是() for (i=5; i; i—-)for(j=0;j<4; j++){。

}A) 20B) 25 C)24 D) 30(9)若有以下定义和语句:char *s1=”12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是()A)4B)5 C)9 D)10(10)若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能表示a数组元素的表达式是()A) *p B) a[10]C)*a D)a[p-a](11)下面程序的输出是()main(){char *s=”121";int k=0,a=0,b=0;do{k++;if(k%2==0) {a=a+s[k]—’0’;continue;}b=b+s[k]—’0';a=a+s[k]—'0';}while (s[k+1]);printf("k=%d a=%d b=%d\n",k,a,b);A) k=3 a=2 b=3 B) k=3 a=3 b=2C)k=2 a=3 b=2D) k=2 a=2 b=3(12) 下面程序的输出是( )main(){ unsigned a=32768;printf("a=%d\n”,a);}运行结果: —32768A)a=—32768 B)a=32767C)a=-32767 D)a=—1(13) 若有以下定义:float x; int a,b; 则正确的switch 语句是( )A)switch(x) B) switch(x){case1.0:printf("*\n”);{case1, 2:printf(”*\n”);case2。

C语言上机练习题

C语言上机练习题

1。

阅读以下程序,说出其功能和运算结果。

#include 〈stdio.h〉int main( ){int n ;int factorial(int n);scanf(”%d”,&n) ;printf(”%d\n",factorial(n)) ;return 0 ;}int factorial(int n){int i, fact=1 ;for(i=1;i<=n;i++)fact=fact*i ;return fact ;}若输入5↙2.改正下列程序中的错误,在屏幕上显示“Welcome to You!”.#include <stdio.h〉int mian( ){printf(”Welcome to You!\n”)return 0 ;}3.若输入4,程序运行结果为【1 】,若输入-4,运行结果为【2 】,若输入10,运行结果为【3 】.#include〈stdio.h〉main(){i nt x,y;scanf(”%d",&x);if(x〈1){y=x;printf("x=%d,y=x=%d\n”,x,y);}else if(x<10){y=2*x-1;printf(”x=%d,y=2*x—1=%d\n",x,y);}else{y=3*x-11;printf(”x=%d,y=3*x—11=%d\n”,x,y);}}4.当输入19,2,21时下列程序运行的结果是()。

#include<stdio。

h>main(){int a,b,c,max;printf(”please scan three number a,b,c:\n");scanf(”%d,%d,%d”,&a,&b,&c);max=a;if(max<b)max=b;if(max〈c)max=c;printf("max is:%d”,max);}5. 运行以下程序时,从键盘键入China#<CR〉(〈CR〉代表回车),则下面程序的运行结果是。

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

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

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.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的-,选项B中[与]不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的-不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%某B)a+bC)a123D)123选项A中的%,选项B中+不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的\\,$,选项D中>,#,.,-不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

计算机二级c语言经典练习题及解析答案

计算机二级c语言经典练习题及解析答案

计算机二级c语言经典练习题及解析答案一、单选题1. C语言中的三大基本数据类型包括( B )A.整型、实型、逻辑型B.整型、实型、字符型C.整型、逻辑型、字符型D.整型、实型、逻辑型、数组型2. 在C语言中,以下合法的字符常量是( c )A. '\048'B. 'ab'C. '\43'D. "\0"3.设x 为 int 型变量,执行下列语句: x=10; x+=x-=x-x; 则x的值为 ( B )A. 15B. 20C. 25D. 304. 定义如下变量和数组: int i, x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i<3;i++) printf("%d",x[i][2-i]); 的输出结果是( C )A. 1 4 7B. 1 5 9C. 3 5 7D. 3 6 95.逗号表达式(a=3*5,a*4),a+15的值是( b )A.15B. 30C. 60D. 756. .以下程序的输出结果是( c )。

main( ){ int x=10,y=11;printf("%d,%d\n",x--,--y);}A. 11,11B. 10,11C. 10, 10D.11,107.若一个外部变量的定义形式为static int x ; 其中static的作用是( d )A.将变量存放在静态存储区,使x的值可以永久保留B.使变量x可以由系统自动初始化C.使x的值可以永久保留D.使x只能在本文件内引用8.有如下变量说明:int k=2;则下面的循环共执行多少( d )次while (k!=0) {printf("%d",k);k--;}A.无限多次 B.0次 C.1次 D. 2次9.设有变量说明:int a=7,b=8;那么语句:printf("%d,%d\n",(a+b,a),(b,a+b));的输出应该是( a )A. 7,15B. 8,15C. 15,7D.15,810.若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是( b )A. p+1B. a++C. a+1D. ++p11. C语言变量名中不能使用的字符是( d )A. 数字B. 字母C. 下划线D. 关键字12.以下变量定义中合法的是( a )A.short a=2.1e-1;B. double b=1+5e0.5;C. long do=0xffe ;D. float 3_end=1-e3;13.若有说明语句char ch1=′\x79′;则ch1( c )A.包含4个字符B.包含3个字符C. 包含2个字符D.包含1个字符14.C语言中的函数( b )A. 可以嵌套定义B.嵌套调用和递归调用均可C. 不可以嵌套调用D. 可以嵌套调用但不可以递归调用15. 设整形变量a=12;则执行完语句a+=a-=a*a后a的值为( c )A. 552B. 264C. -264D. 14416.设a=1,b=2,c=3,d=4,则表达式:a>b?a:c<d?a:d的结果是( a )A.1 B.2 C.3 D.417.若有说明语句:int b[][4]={ 3,1,2,5,7,6,4}; 则b数组的行数为( b )A. 3B. 2C.无确定值D. 118. 若有定义:char c[10];从键盘输入“LiFang”,则正确的函数引用是( c )A. scanf(″%c″,&c[10]);B. gets(c);C. scanf(″%s″,&c);D. gets(c[10]);19. 两个基类型相同的指针变量之间,不能进行的运算是( c )A. <B. =C. +D.-20. 下面程序段执行结果是( b )int i=5,k; k=(++i)+(++i)+(i++); printf("%d,%d",k,i);A. 24,8B. 21,8C. 21,7D. 24,721.以下选项中属于C语言的数据类型是( b )。

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)

C语言程序设计练习题(答案)1.1上机实训项目实验1实验步骤1、进入VC环境从“开始”→“程序”→“Microsoft Visual Studio 6.0”→“Microsoft Visual C++ 6.0”,这时进入VC集成环境的主菜单窗口,屏幕显示如图1_1所示。

图1-1 VC集成环境的主菜单窗口2、VC环境下C程序的编辑、连接和运行(1)新建一个源程序①在VC环境中选择“文件”菜单,然后单击“新建”菜单项。

如图1-2所示图1-2 选择新建② 在弹出的新建对话框中设置好相应的内容,如图2-2所示。

要事先准备好保存文件的目录,例d:\lx 目录。

在图1-3中“文件”一栏的源程序文件的扩展名一定要输入C 语言程序的扩展名“.c ”。

设置好后,单击“OK ”,就回到了VC++的编辑界面,即将进行输入和编辑的源程序文件example.c 文件存放在D 盘的LX 目录下。

图1-3 新建对话框的设置③ 在图1-4的工作区中,输入源程序2.设置源程序的文件名,扩展名一定要为“.c ”且一定要输入扩展名1.单击该处3.设置存放目录图1-4 输入、编辑源程序④输入源程序文件后可在主菜单栏中选择“文件”(FILE),并在其下拉菜单中选择“保存”(SAVE),如图1-5所示。

图1-5 保存源程序⑤源程序的编译如图2-6所示,单击主菜单的“编译”(Build),在其下拉菜单中选择“编译example.c”(Compile example.c),或者单击工具栏上的“编译”按钮,如图1-6所示。

在单击“编译”后,屏幕上会出现一个如图1-7所示的对话框。

内容是“This build command requires an activeproject worksapce,Would you like to create a default project worksapce?”,要创建一个默认的项目工作区,单击“是(Yes)”,表示同意,将开始编译;单击“No ”,表示不同意,将取消编译。

C语言习题九数组的定义和使用

C语言习题九数组的定义和使用

习题九数组的定义和使用1. 有以下程序void f (int b[]){ int i;for(i=2;i<6;i++) b[i]* =2;}main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},i;f(a);for(i=0;i<10;i++) printf("%d,",a[i]);}程序运行后的输出结果是______。

A、1,2,3,4,5,6,7,8,9,10,B、1,2,6,8,10,12,7,8,9,10,C、1,2,3,4,10,12,14,16,9,10,D、1,2,6,8,10,12,14,16,9,10,解析:本题在调用函数时,实参是&a[0]的地址,即把a[0]的地址传给形参,由条件i=2且i<6得出函数将对a[2]开始的4个元素(3,4,5,6)进行乘以2操作,结果分别为:a[2]=6,a[3]=8,a[4]=10,a[5]=12。

a[0]、a[1]、a[6]、a[7]、a[8]、a[9]的值并没有发生变化,所以最后的输出结果为:1,2,6,8,10,12,7,8,9,10,。

故本题答案选B。

2. 有以下程序main(){ int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,j,k,t;for(i=0;i<4;i++)for(j=0;j<3;j++)for(k=j+1;k<4;k++)if(a[j][i]>a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;} /*按列排序*/for(i=0;i<4;i++) printf("%d,",a[i][i]);}程序运行后的输出结果是______。

A、1,6,5,7,B、8,7,3,1,C、4,7,5,2,D、1,6,2,1,解析:本题首先定义了一个4行4列的二维数组a,并用了三层循环来进行按列由小到大排序操作。

C语言基础练习题(含答案)

C语言基础练习题(含答案)

第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。

BA、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2. 下列字符序列中,不可用作C语言标识符的是()。

BA.abc123 B. C._123_ D._ok 3. 正确的C语言标识符是()。

AA._buy_2 B.2_buy C._buy D.buy4. 请选出可用作C语言用户标识符的一组标识符()。

BA.void B.a3_b3 C.For D.2a define _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。

BA.\\ B.\0xAA C.\t D.\06. 不属于C语言关键字的是()。

dA.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。

bA.Float B.signed C.integer D.Char8. 以下不能定义为用户标示符的是()。

bA.scanf B.Void C._3com_ D.int9. 一个C程序是由()。

bA.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。

cA.程序行 B.语句 C.函数 D.字符11. 下列说法中,错误的是()。

aA.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的是()。

cA.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。

C语言作业及上机习题(仅供参考)

C语言作业及上机习题(仅供参考)

第一次课熟悉win-TC编译环境、熟悉C语言程序结构1.使用C 语言编译环境,输入下面的源程序。

将你的程序命名为hello.c,然后编译运行它。

/* program writes the words "Hello, world" to the screen *File : Hello.c* By : NJCIT* Date : 07-03-09*/#include <stdio.h>main(){printf("Hello, world\n");return(0);}2.main() /*求两数之和*/{int a,b,sum; /* 这是变量定义*/a=123;b=456;sum=a+b;printf(“sum is %d\n”,sum);}问题:1.一个C语言源程序从哪里开始执行?2. C程序的函数由几部分构成?3. ANSI C 中的注释内容是用什么符号界定?第二次课熟悉printf()函数、常见转义字符及各种数据类型的输出格式1.2. main(){int a=5,b=7,c=-1;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);printf(“%f,%f\n”,x,y);printf(“%-10f%-10f\n”,x,y);printf(“%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n”,x,y,x,y,x,y);printf(“%e,%10.2e\n”,x,y);printf(“%c,%d,%o,%x\n”,c,c,c,c);printf(“%ld,%lo,%x\n”,n,n,n);printf(“%u,%o,%x,%d\n”,u,u,u,u);printf(“%s,%5.3s\n”,”COMPUTER”,”COMPUTER”);}3. 假设下面的例子都是完整程序的一部分,那么他们每一个将会输出什么?4.加载,编译并运行下面的程序。

C语言上机练习9

C语言上机练习9

上机报告9 结构体一、上机内容:1)观察以下程序:#include <stdio.h>#define FORMAT "%d\n%s\n%f\n%f\n%f\n"struct student{ int num;char name[20];float score[3]; }stu={12345, "LiLi",67.5, 89, 78.6};void main(){void print(struct student *); //形参类型指向结构体的指针变量print( &stu );} //实参为stu的起始地址void print(struct student *p) //形参为指向结构体的指针变量{printf(FORMA T,p->num,p->name,p->score[0],p->score[1],p->score[2]) ;//用指针变量调用各成员的值}1、修改程序,单独定义student结构。

struct student{ int num;char name[20];float score[3]; };请定义一个名为st的变量。

定义时不对变量赋初值。

编写一个函数,用来给结构变量赋值。

struct student st;scan(struct student *p){(*p).num=12345;(*p).score[0]=67.5;(*p).score[1]=89.0;(*p).score[2]=78.6;strcpy((*p).name,"LiLi");}2、不定义结构变量,定义一个结构指针,在内存中开辟一个空间,用来存储一个student结构体类型的数据,并以把数据{12345, "LiLi",67.5, 89, 78.6}按结构体的存储格式存储到开辟的内存空间中。

C语言练习题及参考答案

C语言练习题及参考答案

练习题1及参考答案1. 单项选择题(1)以下并非C语言的特点的是????? 。

A.? C语言简洁和紧凑B. 能够编制出功能复杂的程序C.? C语言可以直接对硬件进行操作D.? C语言移植性好【答】B(2)一个C程序的执行是从????? 。

A.? main()函数开始,直到main()函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D.? main()函数开始,直到最后一个函数结束【答】A(3)在C程序中,main()的位置????? 。

A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D. 必须放在它所调用的函数之后【答】C(4)一个C程序是由????? 。

A. 一个主程序和若干子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成【答】B(5)下列说法正确的是????? 。

A. 在执行C程序时不是从main()函数开始的B.? C程序书写格式限制严格,一行内必须写一个语句C.? C程序书写格式比较自由,一个语句可以分行写在多行上D.? C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C2. 填空题(1)一个C源程序至少有?? ①?? 个main()函数和?? ②?? 个其他函数。

【答】①一? ②若干(2)任何C语句必须以????? 结束。

【答】分号(3)C语言源程序的基本单位是????? 。

【答】函数(4)C编译程序的功能是????? 。

【答】将C源程序编译成目标代码练习题2及参考答案1. 单项选择题(1)以下字符串为标识符的是????? 。

A. _MY????????? ??????B. 2_2222?????? ?????? ??????C. short?????? ?????? ??????D. LINE 5【答】A(2)下列符号可以作为变量名的是????? 。

A. +a????? ?????? ??????B. *p?????? ?????? ?????? ??????C. _DAY????? ?????? ??????D. next day【答】C(3)设c是字符变量,则以下表达式正确的是????? 。

《C语言程序设计习题与上机指南》答案

《C语言程序设计习题与上机指南》答案

第一部分习题篇第一章C语言概述一.单选题1.以下说法中正确的是(C)。

A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言中的main()函数必须放在程序的开始部分2.一个C语言程序是由(B)。

A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成3.C语言规定,在一个源程序中,main函数的位置(C)。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后4.以下叙述不正确的是(D)。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释只能位于一条语句的后面5.下列关于C语言的说法不正确的是(D)。

A)C语言既有高级语言的功能,也具有低级语言的一些功能B)C语言中的一条执行语句都必须用分号结束C)注释可以出现在程序中任意合适的地方D)include命令行后面必须加分号6.用C语言编写的代码程序(B)。

A)可以立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行7.用高级语言(如C语言)编写的程序称为(A)A)源程序B)目标程序C)可执行程序D)编译程序8.一个函数的组成有(A)。

A)函数首部和函数体B)函数名和函数的声明部分C)主函数和子函数D)声明部分和执行部分9.在C语言中,用来表示“取地址”的符号是(B)。

A)#B)&C)* D)@10.C语言是计算机高级语言,它适合于作为系统描述语言,它(A)。

A)既可用来写系统软件,也可用来写应用软件B)只能写系统软件,不能用来写应用软件C)不能写系统软件,只能用来写应用软件D)既不能写系统软件,也不能写应用软件二.填空题1.C语言用函数作为程序的模块单位,便于实现程序的模块化。

2.C语言允许直接访问物理地址,能进行位操作。

C语言习题答案

C语言习题答案

习题答案习题1(参考答案)1.程序与算法的概念及二者的区别是什么?程序:为了实现特定目标或解决特定问题而用计算机语言偏写的指令序列,它由算法和数据结构组成。

算法:(Algorithm)是在有限步骤内求解某一问题所使用的一组定义明确的规则。

通俗地讲,就是计算机解题的步骤。

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

2.简述程序设计语言发展的过程程序设计语言经过最初的机器代码到今天接近自然语言的表达,经过了四代的演变。

一般认为机器语言是第一代,符号语言即汇编语言为第二代,面向过程的高级语言为第三代,面对象的编程语言为第四代。

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

“面向过程”是一种以过程为中心的编程思想。

首先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步地实现,使用的时候依次调用函数即可。

一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。

“面向对象”是一种以事物为中心的编程思想。

面向对象的方法主要是将事物对象化,对象包括属性与行为。

面向过程与面向对象的区别:在面向过程的程序设计中,程序员把精力放在计算机具体执行操作的过程上,编程关注的是如何使用函数去实现既定的功能;而在面向对象的程序设计中,技术人员将注意力集中在对象上,把对象看做程序运行时的基本成分。

编程关注的是如何把相关的功能(包括函数和数据)有组织地捆绑到一个对象身上。

4.C语言程序的特点是什么?(1)C语言非常紧凑、简洁,使用方便、灵活,有32个关键字,有9种流程控制语句。

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

(3)数据类型丰富。

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

C语言程序设计上机实验指导与习题第四版

C语言程序设计上机实验指导与习题第四版
}
[题目1023:简单计算器]
下面程序是实现一个简单的运算器(保留两位小数点),如果由键盘输入10+50,计算机可以输出结
果60.00;如果输入8*6,计算机输出48.00;如果输入20/4,计算机输出5.00;如果输入8-6,计算机
输出2.00,请在空处填上适当的代码,运行通过后并提交。
#include "stdio.h"
char a;
a=getchar();
if(a>='A' && a<='Z') a=a+32;
putchar(a); 6
现在,题目要求处理5个字符,怎么做呢?请自己思考……
参考程序:
#include"stdio.h"
main()
{ char a,b,c,d,e;
scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);
数学公式描述为:
C=5*(F-32)/9
[第一组自测数据]
[键盘输入]
100↙
[正确输出]
37.78
[第二组自测数据]
[键盘输入]
100↙
[正确输出]
37.78
[提示]注意公式中的除为普通除法。
参考程序:
#include"stdio.h"
main()
{ float f,c;
scanf("%f",&f);
d=c;
e='\141;
printf("%f,%d,%d,%c,%c", a,b,c,d,e);

二级c语言程序设计习题及解答ch9数组

二级c语言程序设计习题及解答ch9数组

第九章数组一、选择题[9。

1]若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<=i〈=9,则对a数组元素的引用不正确的是A)a[p-a] B) *(&a[i]) C)p[i] D) *(*(a+i))【解析】A:p开始是数组a首地址,只要p++则再减去a的首地址a[p—a]就能取到所有元素,B:&a[i]循环取其地址,*(&a[i])是该地址中所存储的元素C:p就是指针变量,相当于a[i],D:*(a+i) 则正确[9.2]以下程序段数组所有元素输入数据,应在下划线填入的是A)a+(i++) B) &a[i+1] C) a+i D)&a[++i]main(){ int a[10],i=0;while(i〈10) scanf(”%d",_);}【解析】因为要遍历,所以排除B。

C,因为D先加1再取值,丢了a[0][9。

3]以下程序的输出结果是A)3 B) 4 C)1 D)2main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(”%d\n",*(p+2));}【解析】*p=a;p指向首地址,*(p+2))往后移动两个元素,指向3[9.4]以下程序的输出结果是A) 不确定的值 B) 3 C) 2 D)1main(){ int n[2]={0},i,j,k=2;for(i=0;i〈k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf("%d\n”,n[k]);}[9。

5] 以下程序的输出结果是A)17 B)18 C)19 D)20main(){int a[]={2,4,6,8,10},y=1,x,*p;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);printf("%d\n”,y);}【解析】p=&a[1]则p指向元素为4,y+=*(p+x);相当于y=1+4+6+8=19[9.6]以下程序的输出结果是A)6 B)8 C) 4 D) 2main(){int a[]={2,4,6,8},*p=a,i;for(i=0;i<4;i++) a[i]=*p++;printf("%d\n",a[2]);}【解析】p=a,相当于重新把a中的内容赋给a本身,所以a[2]=6[9.7] 以下程序的输出结果是A) 720 B) 120 C) 24 D)6f(int b[],int n){ int i,r=1;for(i=0;i〈=n;i++)r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n”,x);}【解析】调用x=f(a,3);for循环4次,将前四个元素相乘,即得r=2*3*4*5;[9.8]以下程序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是A) 212 B) 204 C) 1a4 D) 1a6 12main(){ int a[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf(”%x\n",p);printf(”%x\n”,p+9); }【解析】因为开始p的地址为194,p+9是指指针向后移动9个元素,而不是9个字节,每个int占2个字节,所以共移动18个字节,1个字节占一个存储单位,%x\n”是16进制,将18转化成16进制是12,所以194+12=2a6[9。

C语言程序设计上机习题与参考答案

C语言程序设计上机习题与参考答案

C语言程序设计上机习题与参考答案1、给出三角形的三边a、b、c,求三角形的面积(应先判断a、b、c三边是否能构成一个三角形)。

2、某幼儿园只收2~6岁的小孩,2~3岁编入小班,4岁编入中班,5~6岁编入大班,编制程序实现每输入一个年龄,输出该编入什么班。

3、编写程序,输入一个整数,判断它能否被3、5、7整除,并根据情况输出下列信息:(1)能同时被3、5、7整;(2)能同时被3、5、7中的两个数整除,并输出这两个数;(3)只能被3、5、7中的一个数整除;(4)不能被3、5、7中的任何一个数整除。

4、请列出所有的个位数是6,且能被3整除的两位数。

5、求1~500中能被5整除的数的倒数之和。

6、编写程序,输入某门功课的若干个同学的成绩,以-1作为终值,计算平均成绩并输出。

7、若口袋里放入12个球,3个红球,3个白的,6个黑的,从中任取8个,编写程序,列出所有可能的取法。

8、编写一个程序,求2022!的末尾有多少个0?9、一个自然数平方的末几位与该数相同时,称该数为同构数。

例如:252=625,则25为同构数。

编程求出1~1000中的同构数。

10、输入一个较大的整数,求小于该整数的最大5个素数。

n11、求下列数列的近似值:S=1-1/22+1/33-1/44+(-1)/nn.输入精度,当某一项的精度小于该值时停止计算。

floatfun(floatep){}voidmain(){floatep;canf(“%f”,&ep);printf(“%f\n”,fun(ep));}12、编写一个函数change(int某,intr),将十进制整数某转换成r(1<r<10)进制后输出。

13、求1000以内的亲密数对。

亲密数对的定义为:若整数a的所有因子(不包括本身)之和为b,b的所有因子(不包括b本身)之和为a,且a和b不相等,则称a与b为亲密数对。

intfun(int某){}voidmain(){intn,a,b;for(n=1;n<1000;n++){b=fun(n);a=fun(b)if(a!=b&&a==n)printf(“\n%d,%d\n”,a,b);}}14、用递归法求下列问题的解:一对小兔,一个月后长成中兔,第二个月长成大兔,长成大兔,长成大兔后以后每个月生一对小兔。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上机任务五
实验目的:
1.熟练使用switch……case语句。

2.掌握循环结构。

3.熟练使用while语句。

实验内容:
1.打开程序modi5_1.c,程序中有三类错误,请修改并运行,程序功能:输入一个数n,输出n除以3的余数。

2.打开程序modi5_2.c,程序中有三个错误,注意错误在两个error标志之间。

程序功能:求1—100之间所有整数的和,程序正确结果为5050。

3. 将上题修改为,输入两个整数,求两个整数之间(包含这两个整数)的总和,程序另存为modi5_3.c。

测试数据:输入3和5 输出12;输入6和2 结果为20。

4. 打开程序modi5_4.c,实现输出50以内能被5整除但不能被3整除的数。

输出 5 10 20 25 35 40 50。

5. 打开程序modi5_5.c,程序填空。

程序功能:输入一个年份和一个月份,输出该年的这个月有多少天。

分别输入2006年1月结果为31,1998年6月结果为30,1900年2月结果为28,2000年2月结果为29,2008年2月结果为29等数据进行测试。

选作题:
将程序modi5_1.c修改为求1~100之间所有整数的乘积(即100的阶乘)。

结果约为9.33e157。

下周作业题:
1.打开程序modi6_1.c,程序填空,实现输入一个正整数i,求它的各位数字之和n;例如输入123,输出6。

2.打开程序modi6_2.c,实现课本P121页,习题4.19:输入x值,按照下列公式计算cos(x)的值,直到最后一项小于10-6为止。

,!
6x !4x 2!x 1)x (cos 6
42 +-+-=测试数据:输入1(注意:单位是弧度);输出0.54 。

3. 打开程序modi6_3.c ,程序填空:实现输入若干个字符,回车结束输入,统计其中字母个数,数字个数,空格个数和其它字符的个数。

4.上面第一题中如何限制只能输入一个正整数(提示如果输入的为0或负数,要重新输入,直到输入正确为止,尝试用do ……while 循环实现)。

相关文档
最新文档