文档库 最新最全的文档下载
当前位置:文档库 › c语言单元测试7

c语言单元测试7

c语言单元测试7
c语言单元测试7

单元测验7

一.单项选择题

⒈以下正确的函数定义形式是()。

A. double fun (int x, int y) { }

B. double fun (int x; int y) { }

C. double fun (int x, int y) ; { }

D. double fun (int x, y) { }

⒉若调用一个函数,且词函数中没有return语句,则函数()。

A. 没有返回值

B. 返回若干个系统默认值

C. 能返回一个用户所希望的函数值

D. 返回一个不确定的值

⒊C语言规定,简单变量做实参时,它和对应形参之间的数据传递是()。

A. 地址传递

B. 单项值传递

C. 由实参传给形参,再由形参传回实参

D. 由用户指定传递方式

⒋C语言允许函数类型默认定义,此时该函数隐含的类型是()。

A. float型

B. int型

C. long型

D. double

⒌请选择下列程序的运行结果是()。

fun (int *p)

{ int a =10;

p = &a;

++a;

}

main ( )

{ int a = 5;

fun (&a);

printf (“ %d\n ” , a);

}

A. 5

B.6

C.10

D.11

⒍在C语言程序中,以下正确的描述是()。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

⒎若用数组名作为函数调用的实参,传递给形参的是()。

A. 数组的首地址

B. 数组第一个元素的值

C. 数组中全部元素的值

D. 数组元素的个数

⒏凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。

A. auto

B. static

C. extern

D. register

二.填空题

⒈C语言变量的四种存储类别是________、________、________、________。

⒉C语言源程序的基本单位是________。

⒊在C语言中,全局变量的作用范围是________,局部变量的作用范围是________。

⒋return语句的作用是________。

三、程序分析题

1. 阅读程序,写出运行结果。

main ( )

{ int a = 2 , i;

for (i=o ; i<3 ; i++) printf (“ %4d ” , f (a));

}

f (int a);

{ int b = 0; static int c = 3;

b++; c++;

return (a+b+c);

}

2. 阅读程序,写出运行结果。

main ( )

{ int x =2 , y = 3 , z = 0;

printf (“(1) x=%dy=%dz=%d\n” , x , y , z);

add (x , y , z);

printf (“(3) x=%d y=%dz=%d\n” , x , y , z);

}

add (int x , int y , int z)

{ z = x+y ; x = x*x ; y = y*y ;

printf (“(2) x=%dy=%dz=%d\n” , x , y , z);

}

3. 阅读程序,将程序补充完整。

/*求两数和*/

main ( )

{ float a , b , c;

_______________;

printf (“input a,b=\n”);

scanf (“%f, %f “ , &a , &b);

c = ad

d (a , b);

printf (“sum is %5.2 f\n” , c);

}

float add (x , y)

_______________;

{ float z;

z = x+y;

_______________;

}

四、应用题

⒈写一函数,接收两个整数值,并传回这两个整数值的最小公倍数。

⒉编写程序,打印出2到50之间的所有素数。利用函数来判断每个数是否为素数,是则返回1,不是则返回0。

⒊编写程序,利用求和函数求出

Y=(1+2+3+…+m)×(1+2+3+…+n)÷(1+2+3+…+p)

⒋计算X n。将X n写成递归函数,x和n由键盘键入。

⒌编写一个程序计算任一输入的整数的各位之和。

⒍编写函数,将字符串中非数字字符前的数字字符转换成数值相同的整数。例如字符

串“298”,转换成整数298,字符串“435ert12”转换成整数435。

⒎写一函数,将两个字符串连接。

⒏编写程序,处理某班各门课程的成绩。要求完成以下功能:每门课程全班的总成绩和平均成绩,每个学生课程的总成绩,并要求将结果打印出来。

附加题:当程序运行陷于死循环时,说明程序中存在⑴__。在C语言中,函数定义及函数调用应该遵循的原则是___⑵___。以求阶乘为例,采用递归的方式编写的程序相对于递推方式的程序执行效率较低的原因是__⑶___。

·供选择的答案

⑴A 语法错误 B 静态的语义错误C 词法错误D 动态的语义错误

⑵A 可以进行函数的嵌套定义,不可以进行函数的嵌套调用

B 不可以进行函数的嵌套定义,可以进行函数的嵌套调用

C 既可以进行函数的嵌套定义,也可以进行函数的嵌套调用

D 既不能进行函数的嵌套定义,也不能进行函数的嵌套调用

⑶ A 递归程序经编译后形成较长的目标代码,所以需要较多的运行时间

B 递归程序执行时多次复制同一段目标代码占用了较多得时间

C 递归程序执行过程中重复存取相同的数据占用了较多得时间

D 自顶向下

·参考答案

⑴D ⑵B ⑶C

举例说明:

----------------------------

斐波拉契数列定义为f(0) = f(1) = 1, f(n) = f(n-1) + f(n-2) (n>=2)

如果用递归定义的函数计算f(5),则f(5)= f(4)+ f(3)

而f(4)= f(3)+ f(2)

这样在计算f(5)的过程中,f(3)至少被计算了2次,这是没有必要的重复,也是用递归方法计算的最大缺点。

至于编译生成的目标代码的长度,递归函数的目标代码一般是很短小的。

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】

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 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语言结构体和共用体实验报告

实验九参考程序 实验 9- 1 /**************************************************************** * 实验 9.1 * * ( 1 )为某商店的商品设计合适的结构体 (PRODUCT) 。每一种商品包含编号 (number) 、 * 名称 (name) 、价格 (price) 、折扣 (discount)4 项信息,根据表 9-1 ,为这些信 息选择合适的数据类型。 * (2)建立 2个函数,以实现对商品的操作。 input 函数实现商品的输入; * display 函数显示商品信息。要求这 2个函数都以商品的结构体 (PRODUCT) 指针为 参数。 * (3 )在主函数中为商品键盘定义一个结构体变量 (keyboard) ,利用 input 函数实现键 盘信息的输入; * 定义一个结构体数组 (elec_device[3]) ,利用 input 函数实现冰箱、 空调、电视 信息的输入; * 最后利用 display 函数显示 4 种商品的信息。 * * 表 9-1 #include typedef struct _PRODUCT int iNumber; char strName[32]; float fPrice; float fDiscount; * 编号 名称 价格 折扣 *1010 键盘 89.50 0.85 *1021 冰箱 1024.00 0.95 *1022 空调 2058.50 0.90 *1023 电视 3001.88 0.95 *************************************************************** */

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

(完整word版)C语言程序设计基础-结构体习题

1、把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。 #include int main() {struct Student { long int num; char name[20]; char sex; char addr[20]; }a={10101,“Li Lin”,‘M’, “123 Beijing Road”}; printf("NO.:%ld\nname:%s\n sex:%c\naddress:%s\n",a.num,https://www.wendangku.net/doc/f01605116.html,,a.sex,a.addr); return 0; } 2、输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩 #include int main() { struct Student { int num; char name[20]; float score; }student1,student2; scanf("%d%s%f",&student1.num,https://www.wendangku.net/doc/f01605116.html,, &student1.score); scanf(“%d%s%f”,&student2.num,https://www.wendangku.net/doc/f01605116.html,, &student2.score); printf("The higher score is:\n"); if (student1.score>student2.score) printf("%d %s %6.2f\n",student1.num,https://www.wendangku.net/doc/f01605116.html,, student1.score); else if (student1.score #include struct Person { char name[20];

C语言结构体共用体选择题新

1、变量 a 所占的内存字节数是。(假设整型int 为 4 字节) structstu {charname[20]; longintn; intscore[4]; }a; A)28B)30 C)32D)46 C 2、下列程序的输出结果是 A)5B)6 C)7D)8 structabc {inta,b,c;}; main() {structabcs[2]={{1,2,3},{4,5,6}};intt; t=s[0].a+s[1].b; printf("%d\n",t); } B 3、有如下定义 structperson{charname[9];intage;}; structpersoncalss[4]={"Johu",17, "Paul",19, "Mary",18, "Adam",16,}; 根据以上定义,能输出字母M 的语句是________ 。 A)printf("%c\n",class[3].name); B)printf("%c\n",class[3].name[1]); C)printf("%c\n",class[2].name[1]); D)printf("%c\n",class[2].name[0]); D 4、以下程序的输出是________ 。 structst {intx;int*y;}*p; intdt[4]={10,20,30,40}; structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,dt[0],}; main() {p=aa; printf("%d\n",++(p->x)); } A)10B)11 C)51D)60 C 6、以下程序的输出结果是________ 。 structHAR {intx,y;structHAR*p;}h[2]; main() {inth[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4;

C语言程序设计单元测试一

C 语言单元测试一(1-4章) 一、选择题:(每题2分,共66分) 1.若有定义语句int b=2; 则表达式 (b<<2)/(3||b)的值是 A )4 B )8 C )0 D )2 2.有以下程序 #include main() { char a='H'; a=(a>='A'&&a<='Z') ? (a-'A'+'a'):a; printf("%c\n",a); } 程序运行后的输出结果是 A )A B )a C )H D )h 3.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch 语句是 4.在C 语言中,字符型数据在内存中以( )形式存放。 A )原码 B )ASCII 码 C )反码 D )BCD 码 5.下列关系表达式中,结果为“假”的是 A )(3+4)>6 B )(3!=4)>2 C )3<=4||3 D )(3<4)==1 6.C 语言中char 类型数据占字节数为 A )3 B )4 C )1 D )2 7.若有定义和语句:int a,b;scanf("%d,%d",&a,&b);以下选项中的输入数据,不能把值3赋给变量a 、5赋给变量b 的是(说明:符号□表示空格) A )3,5, B )3,5,4 C )3□,5 D )3,5 8.在C 语言中,要求运算数必须是整型的运算符是 A )/ B )++ C )!= D )% 9.已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下正确的表达式是 A )a + = a -= (b=4) * (a=3) B )a = a * 3=2 C )x % (-3) D )y = float(i) 10.以下叙述中错误的是 A )非零的数值型常量有正值和负值的区分 B )常量是在程序运行过程中值不能被改变的量 C )定义符号常量必须用类型名来设定常量的类型 D )用符号名表示的常量叫符号常量 11.以下选项中表示一个合法的常量是(说明:符号□表示空格) A )9□9□9 B )0Xab C )123E0.2 D )2.7e 12.变量a 中的数据用二进制表示的形式是01011101,变量b 中的数据用二进制表示的形式是11110000。若要求将a 的高4位取反,低4位不变,所要执行的运算是 A )a^b B )a|b C )a&b D )a<<4 13.当变量c 的值不为2、4、6时,值也为“真”的表达式是 A )(c==2)||(c==4)||(c==6) B )(c>=2 && c<=6) || (c!=3)||(c!=5) C )(c>=2 && c<=6) && !(c%2) D )(c>=2 && c<=6) && (c%2!=1) 14.有以下程序段 char ch; int k; ch='a'; k=12; printf("%c,%d,",ch,ch,k); printf("k=%d\n",k); 已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A )因变量类型与格式描述符的类型不匹配输出无定值 B )输出项与格式描述符个数不符,输出为零值或不定值 C )a,97,12k=12 D )a,97,k=12 15.int a=123,b=12345; printf(“%4d,%4d ”,a,b);的输出结果为(说明:符号□表示空格) A )□123,1234 B )123,12345 C )□123,12345 D )123□,1234 16.以下程序的运行结果是 void main() { int m=5; if (m++ > 5) printf ("%d\n", m); else printf ("%d\n", m-- ); } A )4 B )5 C )6 D )7 17.设以下变量均为int 类型,则值不等于7的表达式是 A )(x= y= 6, x+y,x+1) B )(x= y= 6,x+y,y+1) C )(x= 6,x+1,y= 6,x+y) D )(y=6,y+l,x = y,x+1) 18.以下关于运算符优先顺序的描述中正确的是 A )关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B )逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C )赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D )算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 19.以下选项中可作为C 语言合法常量的是 A )-80 B )-080 C )-8e1.0 D )-80.0e 20.下列可用于C 语言用户标识符的一组是 A )void, define, WORD B )a3_3,_123,Car C )For, -abc, IF Case D )2a, DO, sizeof 21.有以下程序 #include main() { int a=24,b; b=a>>2;printf("%d\n",b); } 程序运行后的输出结果是 D )switch(a*a+b*b) { default : break; case 3 : y=a+b;break; case 2 : y=a-b;break; } C )switch(a+b) { case1 : case3 : y=a+b;break; case0 : case4 : y=a-b; } B )switch a*b { case 10 : x=a+b; Default : y=a-b; } A )switch(a+9) { case c1 : y=a-b; case c2 : y=a+b; }

C语言实验

C语言上机指导指导教师:李辉李晓丽 东北电力大学 电气工程学院 2006年3月

实验2数据类型、运算符和表达式 1.实验目的 掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 进一步熟悉C程序的编辑、编译、连接和运行的过程。 2.实验内容和步骤 (2).在此基础上增加一个语句: printf(“%d%d\n”,c1,c2); 再运行,并分析结果。 (3).再将第2行改为: int c1,c2; 再使之运行,并观察结果。 (4).再将第3、4行改为: c1 = a; /* 不用单撇号*/ c2 = b; 再使之运行,分析其运行结果。

(5).再将第3、4行改为: c1 = ”a”; /* 用双撇号*/ c2 = ”b”; 再使之运行,分析其运行结果。 (6).再将第3、4行改为: c1 = 300; /* 用大于255的整数*/ c2 = 400; 再使之运行,分析其运行结果。 输入并运行教材第3章习题3.6给出的程序 (1).将一个负整数赋给一个无符号的变量,会得到什麽结果。画出它们在内存中的表示形式。 (2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。画出它们在内存中的表示形式。 (3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式。 同学们可以改变程序中各变量的值,以便比较。例如:a = 65580, b = -40000, e = 65535, f = 65580。 输入习题3.10

C语言结构体习题及答案

C语言结构体习题及答 案 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 2.当定义一个结构体变量时,系统为它分配的内存空间是【】A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6

7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 A) 64 B) 114 C) 228 D) 7 9、设有一结构体类型变量定义如下: struct date { int year; int month; int day; }; struct worklist { char name[20]; char sex; struct date birthday; } person; 若对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。。。。

C语言程序设计单元测试题三

C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。 一、选择题 1.以下为一维整型数组a的正确说明是_________. A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10; scanf("%d",&n); int a[SIZE]; int a[n]; 2.以下对二维数组a的正确说明是________. A)int a[3][]; B)float a(3,4); C)double a[1][4] D)float a(3)(4); 3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______. (假设a[0][0]位于数组的第一个位置上。) A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1 4.若二维数组a有m列,则在a[i][j]前的元素个数为________. A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1 5.25.若有以下程序段: int a[]={4,0,2,3,1},i,j,t; for(i=1;i<5;i++) {t=a[i];j=i-1; while(j>=0&&t>a[j]) {a[j+1]=a[j];j--;} a[j+1]=t;} ... ... 则该程序段的功能是_________. A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序) C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序) 6.有两个字符数组a、b,则以下正确的输入语句是_______. A)gets(a,B); B)scanf("%s%s",a,B); C)scanf("%s%s",&a,&B); D)gets("a"),gets("b"); 7.下面程序段的运行结果是_________. char a[7]="abcdef"; char b[4]="ABC";

c语言实验六

常熟理工学院 《C语言程序设计》实验指导与报告书 ______学年第____ 学期 专业: ___________________________________________ 学号: ___________________________________________ 姓名: ___________________________________________ 实验地点:___________________________________________ 指导教师:___________________________________________ 计算机科学与工程学院 2014

实验7 数组程序设计(1) 7.1 实验目的 1.掌握一维数组的定义及初始化方法。 2.掌握用循环语句对一维数组进行处理的方法。 3.熟悉对数组元素进行处理的常规算法(如排序、插入、删除及查找等)。 7.2 示例程序 【实验7.1】本程序的功能是:取出一个十进制正整数中的所有偶数数字,用这些数字构成一个最大数。 程序代码: #include #define N 10 int main() { int i,j,k=0,t,d,a[N]; long n,m=0; printf("Please enter a long integer."); scanf("%ld",&n); while(n>0) /* 依次取出每位数,并将偶数存入数组*/ { t=n%10; /* 取出一位数*/ if(t%2==0) /* 判断是否偶数*/ a[k++]=t; /* 将偶数存入数组*/ n/=10; /* 为取下一位数做准备*/ } for(i=0;ia[d]) /* 后续元素依次与起始元素进行比较*/ d=j; /* 记录比起始元素大的元素的下标*/ if(d!=i) /* 一轮比较后判断记录的下标是否发生了变化*/ { t=a[d];a[d]=a[i];a[i]=t;} /* 若发生了变化,则交换元素值*/ } for(i=0;i

C语言结构体习题及答案

第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 # 2.当定义一个结构体变量时,系统为它分配的内存空间是【】 A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; < 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6 7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 ( A) 64 B) 114 C) 228 D) 7 9、设有一结构体类型变量定义如下: struct date { int year; int month; int day; }; struct worklist { char name[20]; char sex; $

struct date birthday; } person; 若对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。。。。 A. year=1976 B. =1976 C. D. =1976 1、若程序中有以下的说明和定义: struct abc { int x;char y; } 花括号后少了分号。 struct abc s1,s2; 则会发生的情况是______。 A) 编译时错B) 程序将顺序编译、连接、执行C) 能顺序通过编译、连接、但不能执行D) 能顺序通过编译、但连接出错

计算机二级C语言考试内容

计算机二级 公共基础知识 基本要求 1.掌握算法的基本概念。 2.掌握基本数据结构及其操作。 3.掌握基本排序和查找算法。 4.掌握逐步求精的结构化程序设计方法。 5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。 6.掌握数据库的基本知识,了解关系数据库的设计。 考试内容 一、基本数据结构与算法 1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5.线性单链表、双向链表与循环链表的结构及其基本运算。 6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。

7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1.程序设计方法与风格 2.结构化程序设计。 3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。 2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3.结构化设计方法,总体设计与详细设计。 4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5.程序的调试,静态调试与动态调试。 四、数据库设计基础 1.数据库的基本概念:数据库,数据库管理系统,数据库系统。 2.数据模型,实体联系模型及E―R图,从E―R图导出关系数据模型。 3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。

c语言练习题带答案)-绝对经典题目不看后悔

1单选题 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.

C语言第三单元单元测验答案

C语言程序设计第三单元单元测试答案 一选择题 1.以下程序的运行结果是。 void sub (int x,int y,int *z) {*z=y-x;} main() {int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%4d,%4d,%4d",a,b,c); } A) 5, 2, 3 B) -5, -12, -7 C) -5, -12, -17 D) 5, -2, -7 参考答案:A 2.执行以下程序后,a的值为【1】,b的值为【2】。 main() {int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(-*p1)/(*p2)+7; printf("a=%d,b=%d\n",a,b); } 【1】A)-1 B)1 C)0 D)4 【2】A)5 B)6 C)7 D)10 参考答案:【1】C 【2】C 3.下面程序欲对两个整型变量的值进行交换,以下正确的说法是。 main() {int a=10,b=20; printf("(1)a=%d,b=%d\n",a,b); swap(&a,&b); printf("(2)a=%d,b=%d\n",a,b); } swap (int p,int q) {int t; t=p;p=q;q=t;} A)该程序完全正确 B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可 C)该程序有错,只要将swap()函数中的形参p、q和变量t均定义为指针即可 D)以上说法都不正确 参考答案:D 4.有四组对指针变量进行操作的语句,以下判断正确的选项是。 (1)int *p,*q;q=p; int a,*p,*q;p=q=&a; (2)int a,*p,*q;q=&a;p=*q; int a=20,*p;*p=a; (3)int a=b=0,*p;p=&a;b=*p; int a=20,*p,*q=&a;*p=*q; (4)int a=20,*p,*q=&a;p=q;

C语言实验报告

实验一进制转换一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。

五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制 的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n");

} else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c;

c语言结构体与共用体之间的区别

https://www.wendangku.net/doc/f01605116.html,/2005/03/25/12365.html 所谓共用体类型是指将不同的数据项组织成一个整体,它们在内存中占用同一段存储单元。其定义形式为: union 共用体名 {成员表列}; 7.5.1 共用体的定义 union data { int a ; float b ; d o u b l e c ; c h a r d ; } obj; 该形式定义了一个共用体数据类型union data ,定义了共用体数据类型变量o b j。共用体 数据类型与结构体在形式上非常相似,但其表示的含义及存储是完全不同的。先让我们看一个小例子。 [例7 - 8 ] union data /*共用体* / { int a; float b; double c; char d; } m m ; struct stud /*结构体* / { int a; float b; double c; char d; } ; m a i n ( ) { struct stud student printf("%d,%d",sizeof(struct stud),sizeof(union data)); } 程序的输出说明结构体类型所占的内存空间为其各成员所占存储空间之和。而形同结构体的

共用体类型实际占用存储空间为其最长的成员所占的存储空间。详细说明如图7 - 6所示。 对共用体的成员的引用与结构体成员的引用相同。但由于共用体各成员共用同一段内存 空间,使用时,根据需要使用其中的某一个成员。从图中特别说明了共用体的特点,方便程序设计人员在同一内存区对不同数据类型的交替使用,增加灵活性,节省内存。 7.5.2 共用体变量的引用 可以引用共用体变量的成员,其用法与结构体完全相同。若定义共用体类型为: union data /*共用体* / { int a; float b; double c; char d; } m m ; 其成员引用为:m m . a , m m . b , m m . c , m m . d 但是要注意的是,不能同时引用四个成员,在某一时刻,只能使用其中之一的成员。 [例7-9] 对共用体变量的使用。 m a i n ( ) { union data { int a; float b; double c; char d; } m m ; m m . a = 6 ; printf("%d\n",mm.a); m m . c = 6 7 . 2 ; p r i n t f ( " % 5 . 1 l f \ n " , m m . c ) ; m m . d = ' W ' ; m m . b = 3 4 . 2 ; p r i n t f ( " % 5 . 1 f , % c \ n " , m m . b , m m . d ) ; }

智慧树知到程序设计基础(C语言)测试第四章单元测试参考答案

智慧树知到程序设计基础(C语言)测试第四章单元测试参考答案 ?总题数: 10 1 【单选题】 (10分) 有下列程序,已知字母A的ASCII码为65,程序运行后的输出结果是()。 #include int main() { char c1,c2; c1=’A’+’8’-’4’; c2=’A’+’8’-’5’; printf("%c,%d\n",c1,c2); return 0; } A.E,68 B.E,D C.D,69 D.输出无定值 正确 本题总得分10分 2 【单选题】 (10分) 有下列程序,程序运行后的输出结果是()。 #include int main() { int a=14,b=12; a=a+b; b=a-b; a=a-b; printf("a=%d,b=%d",a,b); return 0;

} A.a=14,b=12 B.a=12,b=14 C.a=26,b=26 D.a=14,b=14 正确 本题总得分10分 3 【单选题】 (10分) 若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。 A.scanf("%d%d%d",a,b,c); B.read(a,b,c) C.scanf("%D%D%D",&a,&b,&c); D.scanf("%d%d%d",&a,&b,&c); 正确 本题总得分10分 4 【判断题】 (10分) 编写程序,输入3个整数a、b、c,输出时:a的值是b,b的值是c,c的值是a。下面程序可以正确实现题目要求: #include int main() { int a,b,c,t scanf("%d%d%d",&a,&b,&c); t=a;a=b;b=c;c=t; // 顺序交换a、b、c printf("a=%d,b=%d,c=%d",a,b,c); return 0; }

相关文档
相关文档 最新文档