当前位置:   article > 正文

重修c语言,C语言程序设计-重修班-中国大学mooc-题库零氪

已知int ii,ij,ik;scanf("%d%d%d",&ii,&ij,&ik);若希望从键盘输入并使得ii,ij,ik

第一单元 C语言概述

程序设计语言和程序随堂测验

1、程序设计语言是用于人和计算机之间进行通信的媒介。

2、程序是告诉计算机“做什么”和“怎么做”的一组指令。

3、程序设计就是编写程序。

简单的C语言程序随堂测验

1、以下关于main函数的叙述中,错误的是()。

A、main函数是自定义函数

B、main函数可以有形式参数,也可以没有形式参数

C、main函数定义必须出现在一个源文件的开头

D、在一个程序中只能有一个main函数

2、下列叙述中正确的是()。

A、main函数必须出现在其他函数之前

B、程序总是从main函数的第一条语句开始执行

C、main函数中至少有一条语句

D、程序总是在执行完main函数的最后一条语句后结束

3、以下符号中不能用做标识符的是()。

A、_256

B、scanf

C、void

D、Struct

4、浮点数的数据类型有int、float、double。

5、C语言中,变量无需区分大小写。

基层开发环境简介和C语言程序的开发步骤随堂测验

1、下列叙述中正确的是()。

A、在编译时可以发现注释中的拼写错误

B、C语言程序的每一行只能写一条语句

C、int main(void){···}必须位于程序的开始处

D、C语言程序可以由一个或多个函数组成

2、“调试”与“测试”的一个共同目的是发现程序中的错误。

第一单元测验

1、软件是指()。

A、程序

B、程序和文档

C、算法加数据结构

D、程序、数据和相关文档的集合

2、下列叙述中,不符合良好程序设计风格的是()。

A、程序的效率第一,清晰第二

B、程序的可读性好

C、程序中有必要的注释

D、输入数据前要有提示信息

3、以下关于C语言源程序的叙述中,错误的是()。

A、一个C源程序由若干个函数定义组成,其中必须有且仅能有一个名为main的函数定义

B、在一个函数定义的函数体中允许定义另一个函数

C、函数定义由函数头部和函数体两部分组成

D、在一个函数定义中,函数体允许调用另一个函数或调用函数自身

4、以下叙述中正确的是()。

A、C程序的基本组成单位是语句

B、C程序中每一行只能写一条语句

C、简单C语句必须以分号结束

D、C语句必须在一行内写完

5、一个C程序的执行是从()。

A、main函数开始,直到main函数结束

B、第一个函数开始,直到最后一个函数结束

C、第一个语句开始,直到最后一个语句结束

D、main函数开始,直到最后一个函数结束

6、一个C程序是由()。

A、一个主程序和若干子程序组成

B、一个或多个函数组成

C、若干过程组成

D、若干子程序组成

7、C语言派程序的基本单位是()。

A、过程

B、函数

C、子程序

D、标识符

8、计算机能直接执行的程序是()。

A、源程序

B、目标程序

C、汇编程序

D、可执行程序

9、C语言源程序文件的后缀是(),经过编译后, 生成文件的后缀是(),经过连接后,生成文件的后缀是()。

A、.exe;.obj;.c

B、.c;.obj;.exe

C、.dsp;.c;.exe

D、.c;.obj;.dsp

10、以下不正确的C语言标识符是()。

A、ABC

B、abc

C、a_bc

D、ab.c

11、以下正确的C语言标识符是()。

A、%x

B、A+b

C、a123

D、test!

12、C源程序中不能表示的数制是()。

A、二进制

B、八进制

C、十进制

D、十六进制

13、编辑程序的功能是()。

A、建立并修改程序

B、将c源程序编译成目标程序

C、调试程序

D、命令计算机执行指定的操作

14、软件调试的目的是()。

A、发现错误

B、改正错误

C、改善软件的性能

D、验证软件的正确性

15、“调试”与“测试”的一个共同目的是发现程序中的错误。

16、编辑与编译不是一回事。

17、函数都必须返回一个值。

18、注释内容太多不会影响程序的执行效率。

19、C程序执行的入口是main函数,所以main函数必须放在程序的开头。

20、定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

21、所有的数学公式可以直接出现在源程序中。

第一单元作业

1、编写程序,输出“*******”。

2、编写程序,输出自己名字的拼音。如:名字为李华,则输出“Li Hua”。

第二单元 什么是算法

初识算法随堂测验

1、以下不属于算法的特征的是()。

A、确切性

B、无穷性

C、可行性

D、简洁性

2、设计数据结构和算法()。

A、数据结构就是程序

B、算法+数据结构=程序

C、算法=数据结构+程序

D、算法就是程序

3、算法中的每一个步骤都应当是确定的。

4、一个算法不一定要有输出,但一定要有输入。

5、算法中的每一个步骤都应当能有效执行,并得到确定的结果。

经典算法举例随堂测验

1、算法的时间复杂度是指()。

A、算法的执行时间

B、算法所处理的数据量

C、算法程序中的语司或指令条数

D、算法在执行过程中所需要的基本运算次数

2、算法的空间复杂度是指()。

A、算法在执行过程中所需要的计算机存储空间

B、算法所处理的数据量

C、算法程序中的语句或指令条数

D、算法在执行过程中所需要的临时工作单元数

3、衡量一个算法优劣的两个方面为算法占用的内存空间、执行算法耗用的时间。

第二单元测验

1、以下不属于算法的特征的是()。

A、无穷性

B、确切性

C、可行性

D、简洁性

2、算法的有穷性是指()。

A、算法程序的运行时间是有限的

B、算法程序所处理的数据量是有限的

C、算法程序的长度是有限的

D、算法只能被有限的用户使用

3、下列叙述中正确的是()。

A、用C程序实现的算法必须要有输入和输出操作

B、用C程序实现的算法可以没有输出但必须要有输入

C、用C程序实现的算法可以没有输入但必须要有输出

D、用C程序实现的算法可以既没有输入也没有输出

4、以下叙述中错误的是()。

A、算法正确的程序最终一定会结束

B、算法正确的程序可以有零个输出

C、算法正确的程序可以有零个输入

D、算法正确的程序对于相同的输入一定有相同的结果

5、关于算法,以下叙述中错误的是()。

A、某个算法可能会没有输入

B、一个算法对于某个输入的循环次数是可以事先估计出来的

C、同一个算法对于相同的输入必能得出相同的结果

D、任何算法都能转换成计算机高级语言的程序,并在有限时间内运行完毕

6、设计数据结构和算法()。

A、数据结构就是程序

B、算法+数据结构=程序

C、算法=数据结构+程序

D、算法就是程序

7、下列叙述中正确的是()。

A、一个算法的空间复杂度大,则其时间复杂性必定大

B、一个算法的空间复杂度大,则其时间复杂性必定小

C、一个算法的时间复杂度小,则其空间复杂性也必定小

D、上述三种说法都不对

8、下列叙述中正确的是()。

A、算法的效率只与问题的规模有关,而与数据的存储结构无关

B、算法的时间复杂度是指执行算法所需要的计算工作量

C、数据的逻辑结构与存储结构是一一对应的

D、算法的时间复杂度与空间复杂度一定相关

9、算法的空间复杂度是指()。

A、算法在执行过程中所需要的计算机存储空间

B、算法所处理的数据量

C、算法程序中的语句或指令条数

D、算法在执行过程中所需要的临时工作单元数

10、算法的时间复杂度是指()。

A、算法的执行时间

B、算法所处理的数据量

C、算法程序中的语句或指令条数

D、算法在执行过程中所需要的基本运算次数

11、算法中的每一个步骤都应当是确定的。

12、一个算法不一定要有输出,但一定要有输入。

13、算法中的每一个步骤都应当能有效执行,并得到确定的结果。

14、算法的表示方法有很多种,如自然语言、传统流程图等。

15、简单来说,算法就是基于某种计算机语言,利用数据结构来解决具体问题的思路和方法。

16、算法的特点之一是无穷性。

17、描述算法的图形化方法之一就是程序流程图。

18、可以用伪代码法描述算法。

19、算法复杂度主要包括时间复杂度和空间复杂度。

20、衡量一个算法优劣的两个方面为算法占用的内存空间、执行算法耗用的时间。

第二单元作业

1、输入一个数,判断这个数是不是奇数。例如: 输入:3 输出:该数是奇数

2、输入一个数,判断这个数是否大于10。例如: 输入:3 输出:该数不大于10

第三单元 数据类型与表达式

数据类型随堂测验

1、若将int、long、float等类型的数据进行混合运算,其结果的数据类型是()

A、int

B、long

C、float

D、double

2、下面正确的字符串常量是()

A、‘a’

B、‘376’

C、"\n"

D、376

3、C语言字符串结束的标志是()

A、“0”

B、‘0’

C、‘\0’

D、0

4、C语言中,字符数据用格式说明"%c"来输出,字符串数据用格式说明"%s"来输出。

5、C语言中,关键字及编译预处理命令用小写字母书写。

算术运算符和表达式随堂测验

1、表达式17%4 /8的值为()

A、0

B、1

C、2

D、3

2、C语言中要求参加运算的数必须是整数的运算符是( )。

A、/

B、-

C、%

D、=

3、++运算符的操作数必须是变量。

4、函数pow(x,y)的作用是计算y的x次方。

关系运算符,逻辑运算符和逻辑表达式随堂测验

1、判断 i 和 j 至少有一个值为非0的表达式是()

A、i!=0&&j!=0

B、i+j!=0

C、i||j

D、i&&j

2、表达式 5>3>1 值是()

A、0

B、1

C、3

D、表达式语法错误

3、为表示“a和b都不等于0”,应使用的C语言表达式是()

A、(a!=0) || (b!=0)

B、a || b

C、a && b

D、!(a=0)&&(b!=0)

4、表达式语句和表达式没有什么区别。

5、逗号表达式的值是第一个表达式的值。

输入和输出随堂测验

1、若a是基本整型变量,c是单精度实型变量,输入语句()是错误的

A、scanf("%d,%f”, &a, &c);

B、scanf("d=%d, c=%f”, &a, &c);

C、scanf("%d%f”, &a, &c);

D、scanf("%d%f”, a, c);

2、程序员要想调用输入输出函数,需要在程序的开头写上语句()

A、#include

B、#include

C、#include

D、#include

3、语句printf("%.2f",1.0/3);输出为0.33。

4、C语言中不能用printf函数输出字符。

第三单元测验

1、下列合法的标识符是()

A、case

B、3con

C、Li-da-yong

D、$a

2、下列选项中不正确的常数的选项是()

A、0x12F

B、-1.23E-2

C、12.0

D、0388

3、已知int ii,ij,ik;scanf("%d%d%d",&ii,&ij,&ik);若希望从键盘输入并使得ii,ij,ik的值分别为1,2,3时,则错误的输入方式是()

A、1(空格) 2(空格) 3

B、1,2,3

C、1(回车)2(回车)3

D、1(回车)2(空格)3

4、能正确表示逻辑关系" a ≥ 10 或 a ≤ 0 "的C语言表达式是()

A、a>=10 or a<=0

B、a>=0 | a<=10

C、a>=10 && a<=0

D、a>=10 || a<=0

5、表达式 5>3>1 值是()

A、0

B、1

C、3

D、表达式语法错误

6、以下能正确地定义整型变量a,b和c并为它们赋初值5的语句是()

A、int a = b = c = 5;

B、int a, b, c = 5;

C、a = 5, b = 5, c = 5;

D、int a = 5, b = 5, c = 5;

7、如果变量x、y 已经正确定义,下列哪个选项的语句可以正确将x,y的值进行交换?

A、x=x+y,y=x-y,x=x-y

B、t=x,x=y,y=x

C、t=y,y=x,x=y

D、x=t,t=y,y=x

8、执行printf("%x",100);后的输出结果是()

A、100

B、0x100

C、0x64

D、64

9、阅读以下程序段,如果从键盘上输入1234567,则程序的运行结果是() int i,j; scanf("%3d%2d",&i,&j); printf("i = %d, j = %d\n",i,j);

A、i=123,j=4567

B、i=123,j=45

C、i=1234,j=567

D、i=1,j=2

10、下面合法的C语言字符常量是()

A、’\t’

B、”A”

C、65

D、A

11、在C 语言中,常量和变量都有数据类型。

12、C语言中,在进行混合运算时,数据类型由高级向低级转换。

13、C语言中,强制类型转换后,原变量的值和数据类型不变。

14、增1减1运算符的前缀运算和后缀运算的表达式值是相同的。

15、二元运算符均可以和赋值运算符构成复合的赋值运算符。

16、程序中的“=”是赋值号,与数学中等号的功能相同。

17、设变量已正确定义,执行以下程序段,顺序输入三个字符'Q',则输出Q。 ch=getchar(); putchar(ch);

18、整数在存储时不会产生误差,实数在存储时也不会产生误差。

19、C语言中,关键字及编译预处理命令用小写字母书写。

20、用float定义的实型变量在内存占8个字节,输入/输出格式符是%f。

第三单元作业

1、本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式:输入在一行中给出2个正整数A和B。 输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例:3 2 输出样例:3 + 2 =5 3 – 2 =1 3 * 2 =6 3 / 2 =1

2、今天是星期一,两天后是星期三,5天后是星期六;今天是星期六,3天后是星期二。 输入格式:输入在一行中给出2个整数d和n,d表示今天是星期几(1<=d<=7),n表示几天后。 输出格式:在一行中输出星期几的值(1-7)。 输入样例:4 5 输出样例:5天后是星期2

3、交换变量a,b的值。 输入格式:输入两个整数,之间用一个空格间隔。 输出格式:在一行中按照“a=x,b=y”的格式输出,其中x和y均是原样输出,不加宽度控制。 输入样例:3 7 输出样例:before:a=3,b=7 After:a=7,b=3

4、本题要求编写程序,输出一个短句“Programming in C is fun!”。

5、程序每次读入一个正3位数,然后输出按位逆序的数字。 输入格式:每个测试是一个3位的正整数。 输出格式:输出按位逆序的数。 输入样例:123 输出样例:321

第三单元作业 2.0

1、本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式:输入在一行中给出2个正整数A和B。 输出格式:在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例:3 2 输出样例:3 + 2 =5 3 – 2 =1 3 * 2 =6 3 / 2 =1

2、今天是星期一,两天后是星期三,5天后是星期六;今天是星期六,3天后是星期二。 输入格式:输入在一行中给出2个整数d和n,d表示今天是星期几(1<=d<=7),n表示几天后。 输出格式:在一行中输出星期几的值(1-7)。 输入样例:4 5 输出样例:5天后是星期2

3、交换变量a,b的值。 输入格式:输入两个整数,之间用一个空格间隔。 输出格式:在一行中按照“a=x,b=y”的格式输出,其中x和y均是原样输出,不加宽度控制。 输入样例:3 7 输出样例:before:a=3,b=7 After:a=7,b=3

4、程序每次读入一个正3位数,然后输出按位逆序的数字。 输入格式:每个测试是一个3位的正整数。 输出格式:输出按位逆序的数。 输入样例:123 输出样例:321

5、本题要求编写程序,输出一个短句“Programming in C is fun!”。

第四单元 结构化程序设计

顺序结构随堂测验

1、若a、b、c、d都是int型变量且都已经正确赋初值,则以下不正确的赋值语句是()

A、a+d;

B、a++;

C、a=b=c=d=100;

D、a=(b=3)+(d=5);

2、有如下定义 char w; int x; float y; double z; 请说明表达式 w*x+z-y 的类型是()

A、float

B、char

C、int

D、double

3、程序的运行结果是() #include void main() { int a = 25; int b = 21; int m = 0; switch (a%3) { case 0:m++; break; case 1:m++; break; switch (b%2) { default:m++; case 0:m++; break; } } printf("%d\n", m); }

A、1

B、2

C、3

D、4

选择结构随堂测验

1、如果要求在if后一对括号中的表达式在表示a 不等于 0 的时候的值为“真”,则能正确表示这一关系的表达式为()

A、a<>0

B、!a

C、a=0

D、a

2、下列程序段执行后s值为() int i=5, s=0; while(i--) if (i%2) continue; else s+=i;

A、15

B、6

C、9

D、10

多分枝选择结构随堂测验

1、为了避免嵌套的条件分支语句if-else二义性,C语言规定,C程序中的else总是与()组成配对关系

A、缩排位置相同的if

B、在其之前未配对的if

C、在其之前未配对的最近的if

D、同一行上的if

2、下列程序段的输出结果是() int main(void) { int x = 1, a = 0, b = 0; switch(x) { case 0: b++; case 1: a++; case 2: a++; b++; } printf("a=%d,b=%d\n",a,b); return 0; }

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=2

选择结构应用举例随堂测验

1、下列叙述中正确的是()

A、break语句只能用于switch语句

B、在switch语句中必须使用default

C、break语句必须与switch语句中的case配对使用

D、在switch语句中,不一定使用break语句

2、下列程序段的输出结果是() int main(void) { int a = 2, b = -1, c = 2; if(a < b) if(b < 0) c = 0; else c++; printf("%d\n",c); return 0; }

A、0

B、1

C、2

D、3

循环结构——while循环和do-while循环随堂测验

1、设有程序段,则描述正确的是()。 int m=20; while (m=0) m=m++;

A、while循环执行10次

B、循环是无限循环

C、循环语句一次也不执行

D、循环执行一次

2、do-while循环至少要执行一次循环语句。

3、continue 不是结束本次循环,而是终止整个循环的执行。

循环结构——for循环随堂测验

1、下列程序段的功能是()。 #include int main (void) { int i, s = 0; for (i = 1; i < 10; i += 2) s += i + 1; printf("%d\n", s); return 0; }

A、自然数1~9的累加和

B、自然数1~10的累加和

C、自然数1~9中的奇数之和

D、自然数1~10中的偶数之和

2、对for(表达式1;;表达式3)不可理解为for(表达式1;1;表达式3)。

3、for循环的三个表达式都可以省略。

循环的嵌套结构随堂测验

1、若变量已正确定义,要求程序段完成求5!的计算,以下不能完成此操作的是()。

A、for (i = 1, p = 1; i <= 5; i++) p *= i;

B、for (i = 1; i <= 5; i++) {p = 1; p *= i;}

C、i = 1; p = 1; while (i <= 5) {p *= i; i++;}

D、i = 1; p = 1; do {p *= i; i++;} while (i <= 5);

2、C语言中三种循环语句不可以相互嵌套。

3、在多层循环中, 一个break语句只向外跳一层。

第四单元测验(一)

1、若定义以下语句: int u = 010; int v = 0x10; int w = 10; printf("%d,%d,%d\n",u,v,w); 则输出结果是()

A、8,16,10

B、10,10,10

C、8,8,10

D、8,10,10

2、设ch是char型变量,其值为‘A’,则表达式ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch; 的值是()

A、Z

B、a

C、z

D、A

3、设有以下语句: int x = 10; x += 3 + x % 3; printf("%d", x); 则x的值为()

A、11

B、12

C、14

D、15

4、下面程序的输出结果是() #include void main() { int x = 7; int y = 3; printf("%d\n", y = x / y); }

A、0

B、2

C、3

D、不确定

5、写出下面程序运行的结果() #include void main() { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d\n”,i,j,m,n); }

A、9,11,9,10

B、9,11,9,11

C、9,11,8,10

D、9,11,8,11

6、下列程序的运行结果是() #include void main() { int a = 5, b = 4, c = 6, d; printf("%d\n", d = a > b ? (a > c ? a : c) : (b)); }

A、5

B、6

C、0

D、1

7、下列程序的运行结果是() #include void main() { int a = 20; printf("%d,%o,%x", a, a, a); }

A、20,24,14

B、20,14,24

C、20,16,14

D、20,24,16

8、若已知 a=10,b=20,则!a

A、0

B、10

C、20

D、1

9、下列程序的运行结果是() #include void main() { int y = 1, x = 2, z = 3; printf("%d,%d\n", (++x, y++), z + 2); }

A、3,5

B、1,5

C、2,5

D、3,1

10、下列条件语句中,功能与其他语句不同的是()

A、if(a==0) printf("%d\n",y); else printf("%d\n",x);

B、if (a!=0) printf("%d\n",x); else printf("%d\n",y);

C、if(a) printf("%d\n",x); else printf("%d\n",y);

D、if(a==0) printf("%d\n",x); else printf("%d\n",y);

11、case语句后如没有break,顺序向下执行。

12、else不可以单独存在。

13、在switch语句中,必须使用default。

14、if-else语句的一般形式如下,若表达式的值为“真”,则执行语句1;否则,就执行语句2。 if(表达式) 语句1 else 语句2

15、如果变量已经正确定义,则执行以下程序段后,x的值不变。 if (x == 10) { y = 1; } else { y = 0; }

16、在if语句中,必须出现else。

17、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。

18、在switch语句中,可以根据需要使用或不使用break语句。

19、switch语句中多个case标号可以共用一组语句。

20、if(a=5) 是允许的。

第四单元测验(二)

1、下列叙述中正确的是()。

A、do-while语句构成的循环不能用其他语句构成的循环来代替

B、do-while语句构成的循环只能用break语句退出

C、用do-while语句构成的循环,在while后的表达式为非零时结束循环

D、用do-while语句构成的循环,在while后的表达式为零时结束循环

2、C语言中while和do-while循环的主要区别是()。

A、do-while的循环体至少无条件执行一次

B、while的循环控制条件比do-while的循环控制条件更严格

C、do-while允许从外部转到循环体内

D、do-while的循环体不能是复合语句

3、以下程序段的输出结果是()。 #include int main() { int num = 0, s = 0; while(num <= 3){ num ++; s += num; } printf("%d",s); return 0; }

A、10

B、3

C、6

D、1

4、下列程序段执行后s的值为()。 int i=5, s=0; while(i--) if (i%2) continue; else s+=i;

A、15

B、10

C、9

D、6

5、以下程序段若要使输出值为2,则应该从键盘给n输入的值是()。 int s = 0, a = 1, n; scanf("%d", &n); do { s += 1; a = a - 2; } while (a != n); printf("%d\n", s);

A、-1

B、-3

C、-5

D、0

6、以下的 for 循环次数是多少()。 int x,y; for(x=0,y=0;(y!=123)|| (x<4);x++) ;

A、执行3次

B、执行4次

C、循环次数不定

D、无限循环

7、假设变量s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0),则与以下程序段功能等价的赋值语句是()。 s = a; for(b = 1; b <= c; b++) s = s + 1;

A、s=a+b

B、s=a+c

C、s=s+c

D、s=b+c

8、以下正确的描述是()。

A、continue语句的作用是结束整个循环的执行

B、只能在循环体内和switch语句体内使用break语句

C、在循环体内使用break语句或continue语句的作用相同

D、从多层循环嵌套中退出时, 只能使用continue语句

9、下面程序执行结果是()。 for (a=1,i=-1; -1<=i<1; i++) { a++; printf("%2d", a); } printf("%2d", i);

A、2 3 1

B、-1

C、1 2 0

D、3

10、如下程序的执行结果是()。 #include int main (void) { int i, sum = 0; for ( i = 1; i <= 3; sum ++ ) sum += i ; printf ("%d\n", sum); return 0; }

A、6

B、3

C、死循环

D、0

11、do-while循环至少要执行一次循环语句。

12、在循环中使用break语句或者continue语句,其作用是相同的。

13、执行以下while语句,将出现死循环。 s = 0; i = 1; while(1){ if(i > 10){ continue; } s = s + i; i++; }

14、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了。

15、continue 不是结束本次循环,而是终止整个循环的执行。

16、C语言中三种循环语句不可以相互嵌套。

17、for语句的一般形式如下,若表达式2的值为“真”,则先执行循环体语句,再计算表达式3,然后继续循环。 for (表达式1; 表达式2; 表达式3) 循环体语句

18、对for(表达式1;;表达式3)不可理解为for(表达式1;1;表达式3)。

19、执行以下程序段,将输出10。 int i = 10; while (i < 10){ printf("%d\n", i); }

20、for语句的一般形式如下,其中的表达式1只执行一次。 for (表达式1; 表达式2; 表达式3) 循环体语句

第四单元作业(一)

1、编写程序,输入两个整数:1500和350,求出它们的商和余数,并进行输出。

2、编写程序:已知三角形的三边a=3,b=4,c=5,求其面积s。(提示:假设有一个三角形,边长分别为a、b、c,三角形的面积S可由海伦公式求得: S=sqrt(p(p-a)(p-b)(p-c)),而公式里的p为半周长: p=(a+b+c)/2)

3、本题要求编写程序将一个百分制成绩转换为五分制成绩。输入的一行给出一个整数的百分制成绩,输出的一行给出对应的五分制成绩。转换规则: 大于等于90分为A; 小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。

第四单元作业(二)

1、编写程序,对于给定的正整数N(N小于等于10的9次方),求它的位数及其各位数字之和。(用while结构)

2、编写程序,输入一个数,判断其是否是素数。

3、水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。求所有的水仙花数。

第五单元 数组

一维数组的定义和使用随堂测验

1、以下能对一维数组a进行正确初始化的语句是()。

A、int a[10]=(0,0,0,0,0)

B、int a[2]={0,1,2}

C、int a[]={0}

D、int a[]={{}}

2、假定char类型变量占用1个字节,且数组定义如下,则数组str在内存中所占字节数是( )。 char str[81];

A、0

B、10

C、80

D、81

3、对数组的描述正确的是()。

A、数组一旦定义其大小是固定的,但数组元素的类型可以不同。

B、数组一旦定义其大小是固定的,但数组元素的类型必须相同。

C、数组一旦定义其大小是可变的,但数组元素的类型可以不同。

D、数组一旦定义其大小是可变的,但数组元素的类型必须相同。

4、一维数组定义的一般形式如下,其中的类型名指定数组中每个元素的类型。 类型名 数组名[数组长度];

5、数组的长度可以是变量。

二维数组的定义和使用随堂测验

1、数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素()的值为6。

A、a[3][2]

B、a[1][2]

C、a[2][1]

D、a[2][3]

2、以下数组定义中错误的是( )。

A、int x[][3]={0};

B、int x[2][3]={{1,2},{3,4},{5,6}};

C、int x[][3]={{1,2,3},{4,5,6}};

D、int x[2][3]={1,2,3,4,5,6};

3、有说明语句int a[4][5]; 则a[2]+3表示()。

A、a数组行下标为2、列下标为3的元素的地址

B、a数组行下标为2、列下标为3的元素的值

C、a数组的第二行首地址

D、a数组的第三行首地址

4、在对数组全部元素赋初值时,不可以省略行数,但能省略列数。

5、二维数组定义的一般形式如下,其中的类型名指定数组中每个元素的类型。 类型名 数组名[行长度][列长度];

经典排序算法随堂测验

1、用冒泡排序对4,5,6,3,2,1进行从小到大排序,第三趟排序后的状态为( )。

A、4 5 3 2 1 6

B、4 3 2 1 5 6

C、3 2 1 4 5 6

D、2 1 3 4 5 6

2、有一组数,顺序是”4,7,8,1,9”,用冒泡排序法将这组数从小到大排序,第二趟第二次对比的两个数是()。

A、1、4

B、4、7

C、1、7

D、1、8

3、若对n个元素进行直接插入排序,在进行第i趟排序时,假定元素r[i+1]的插入位置为r[j],则需要移动元素的次数为()。

A、j-i

B、i-j-1

C、i-j

D、i-j+1

4、冒泡排序效率较高,因为它只需要约 n^2/2次比较。

第五单元测验

1、以下程序的运行结果是()。 #include int main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2) { k=k+p[i]; i++; } printf("%d\n",k); return 0; }

A、58

B、56

C、24

D、45

2、假定int类型变量占用两个字节,其有定义:int x[10]={0, 2, 4}; 则数组x在内存中所占字节数是()。

A、3

B、6

C、10

D、20

3、下列说法错误是()。

A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B、数组名代表数组所占存储区的首地址,其值不可改变

C、当程序执行中,数组元素的下标超出多定义的下标范围时,系统将给出“下标越界”的出错信息

D、可以通过赋初值的方式确定数组元素的个数

4、下面程序的运行结果是()。 #include int main() { int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=1;i<3;i++) s=s+a[b[i]]; printf("%d\n",s); return 0; }

A、10

B、5

C、11

D、15

5、以下定义语句中不正确的是()。

A、double x[5]={2.0, 4.0, 6.0, 8.0, 10.0};

B、char c2[]={'\x10', '\xa', '\x8'};

C、char c1[]={'1', '2', '3', '4', '5'};

D、int y[5]={0,1,3,5,7,9};

6、下面程序段运行结果是()。 char c[5]={'a','b','\0','c','\0'}; printf("%s",c);

A、'a''b'

B、ab

C、ab c

D、abc

7、设有数组定义为char array[]="China"; 则数组array所占空间为()。

A、5

B、6

C、7

D、4

8、有下面的程序段,则在VC++6.0环境中运行后输出()。 #include void main() { char a[3],b[]="china"; a=b; printf("%s",a); }

A、china

B、ch

C、chi

D、编译出错

9、对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10};

A、将5个初值依次赋给a[1]至a[5]

B、将5个初值依次赋给a[0]至a[4]

C、将5个初值依次赋给a[6]至a[10]

D、因为数组长度与初值的个数不相同,所以此语句不正确

10、若有说明:int a[3][4]={0}则下面正确的是()。

A、只有元素a[0][0]可以得到初值0

B、此说明语句不正确

C、数组a中各元素都可以得到初值,但初值不一定为0

D、数组a中每个元素均可以得到初值0

11、数组的长度可以是变量。

12、同一个数组中的每个元素都具有相同的数据类型,有统一的标识符即数组名,用不同的序号即下标来区分数组中的各元素。

13、数组定义后,数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址。

14、在定义数组之后,根据数组中元素的类型及个数,在内存中分配一段连续存储单元用于存放数组中的各个元素。

15、数组初始化时,初始值个数小于数组元素的个数,C语言自动将剩余的元素初始化为初始化列表中的最后一个初始值。

16、在对数组全部元素赋初值时,不可以省略行数,但能省略列数。

17、引用二维数组的元素要指定两个下标,即行下标和列下标,一般形式如下。 数组名[列下标][行下标]

18、对以下定义的二维数组table[3][2], 其数组元素在内存中的存放顺序是:table[0][0], table[1][0], table[2][0], table[0][1], table[1][1], table[2][1]。

19、设int a[2][3]={{2},{3}};则a[1][0]的值是3。

20、对二维数组初始化时,经常采用如下分行赋初值的方式,即在定义数组时,把初值表k中的数据依次赋给第k行的元素。 类型名 数组名[行长度][列长度] = {{初值表0},… {初值表k},……};

第五单元作业

1、将给定的n(n<=10)个整数(手动输入)存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的这n个数。

2、键盘输入10个数存入一维数组中,编程实现输出下标为奇数的元素并求其和。

3、给定一个长度不超过10000的、仅由英文字母构成的字符串。请筛选出字符串中的英文字母GPLT(不区分大小写),重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有GPLT字符都被输出。 例如输入为: pcTclnGloRgLrtLhgljkLhGFauPewSKgt 则输出为: GPLTGPLTGLTGLGLL

4、键盘输入一个n行m列的整数数组array,按行列输出这个数组,并从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组并输出遍历结果。 例如数组: 1 2 4 7 3 5 8 10 6 9 11 12 输出为:1 2 3 4 5 6 7 8 9 10 11 12

第六单元 函数

函数的概念及调用随堂测验

1、以下正确的说法是()。

A、实参与其对应的形参共同占用一个存储单元

B、实参与其对应的形参各占用独立的存储单元

C、只有当实参与其对应的形参同名时才占用一个共同的存储单元

D、形参是虚拟的,不占用内存单元

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

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)

3、以下()函数的定义是错误的。

A、void f(int i) { return i+1; }

B、void f( ) { }

C、void f(int i) { }

D、int f( ) { return 0; }

4、函数的实参可以是常量,变量或表达式。

5、函数形参的存储单元是动态分配的。

形参是数组的函数调用随堂测验

1、当调用函数时,实参是一个数组名,则向函数传送的是()。

A、数组的长度

B、数组的首地址

C、数组每一个元素的地址

D、数组每个元素中的值

2、下列说法正确的是()。

A、数组名作为实参使用时与普通变量并无区别

B、数组元素作为实参使用时与普通变量并无区别

C、数组元素的传送是双向的,形参实参可以相互传递

D、数组名的传送是单向的,只能由实参传递给形参

3、数组名为参数传递时,形参数组发生变化时,实参数组不随之变化。

4、数组名为参数时形参数组和实参数组为同一数组,拥有相同的一段内存空间。

5、多维数组也可以作为函数的参数。在函数定义时对形参数组可以指定每一维的长度,也可省去第一维的长度。

函数的嵌套调用随堂测验

1、调用函数f(27)的输出结果是()。 void f(int n) { if(n<5) printf("%d",n); else { printf("%d",n%5); f(n/5); } }

A、102

B、201

C、21

D、20

2、以下程序的输出结果是()。 #include long fib(int n) { if(n>2) return (fib(n-1)+fib(n-2)); else return (2); } void main() { printf("%d\n",fib(3)); }

A、2

B、4

C、6

D、8

3、在一个函数内部调用另一个函数的调用方式称为嵌套调用。

4、递归的执行速度并不快,但递归代码比较紧凑,并且比相应的非递归代码更易于编写与理解。

5、在函数嵌套中子函数遇到return是返回到当初调用它的地方。

第六单元测验

1、C语言中函数返回值的类型是由()决定的。

A、return语句中的表达式类型

B、调用该函数的主调函数的类型

C、调用函数时临时决定

D、定义函数时所指定的函数类型

2、以下说法中正确的是()。

A、C语言程序总是从第一个定义的函数开始执行

B、总是从main()函数开始执行

C、C语言程序中,要调用的函数必须在main()中定义

D、main()函数必须放在程序的最开始部分

3、建立自定义函数的目的之一是()。

A、提高程序的执行效率

B、提高程序的可读性

C、减少程序的篇幅

D、减少程序文件所占内存

4、当调用函数时,实参是一个数组名,则向函数传送的是()。

A、数组的长度

B、数组的首地址

C、数组每一个元素的地址

D、数组每个元素中的值

5、下列的结论中只有()是正确的。

A、所有的递归程序均可以采用非递归算法实现

B、只有部分递归程序可以采用非递归算法实现

C、所有的递归程序均不可以采用非递归算法实现

D、以上三种说法都不对

6、对于以下递归函数f,调用f(4),其返回值为()。 int f(int n) { if(n) return f(n-1)+n; else return n; }

A、10

B、4

C、0

D、以上均不是

7、下面程序运行的结果是()。 void delch(char a[],int n) { int i,j; char s[10]; for(i=0;i='0')&&(s[i]<='9')) { a[j]=s[i]; j++; } s[j]='\0'; } void main() { char item[6]={'a','3','4','b','c','\0'}; delch(item,6); printf("%s\n",item); }

A、34

B、abc

C、a34bc

D、a23

8、C语言规定,程序中各函数之间()。

A、既允许直接递归调用也允许间接递归调用

B、不允许直接递归调用也不允许间接递归调用

C、允许直接递归调用不允许间接递归调用

D、不允许直接递归调用允许间接递归调用

9、一个递归算法必须包括()。

A、递归部分

B、终止条件和递归部分

C、循环部分

D、终止条件和循环部分

10、在C语言中,下列错误的说法是()。

A、函数可以递归调用

B、不允许在函数定义中再定义函数

C、递归程序不可能用非递归算法实现

D、对于continue语句,可以通过改变程序的结构而不使用它

11、C语言程序中可以有多个函数 , 但只能有一个主函数。

12、可以在一个函数中定义另一个函数。

13、如果函数定义出现在函数调用之前,可以不必加函数原型声明。

14、若用数组名作为函数调用的实参,传递给形参的是数组中的第一个元素的值。

15、用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时,即会发生错误。

16、普通变量或数组元素作函数参数时,形参变量和实参变量是由编译系统分配的两个不同的内存单元。

17、数组名就是数组的首地址。

18、函数的定义可以嵌套,但函数的调用不可以嵌套。

19、在一个函数内部调用另一个函数的调用方式称为嵌套调用。

20、递归并不节省存储器的开销,因为递归调用过程中必须在某个地方维护一个存储处理值的栈。

第六单元作业

1、寻找从键盘输入的10个数字中的最大数,利用函数实现。

2、已知一个数组a中包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。

3、利用递归调用的方法求n的阶乘。

4、输入一个正整数n,将其逆序输出。要求定义和调用函数reverse(num),其功能是将num逆序输出,要求用递归实现。例如,输入12345,输出54321。

5、输入3个数字,求3个数中最大数和最小数的差值,利用函数嵌套调用完成(例如在求插值的函数中调用求最大最小值的函数)。

第七单元 指针

指针的基本概念随堂测验

1、若有定义:int x,*pb;则在以下正确的赋值表达式是( )

A、pb=&x

B、pb=x

C、*pb=&x

D、*pb=*x

2、以下哪个定义中的p不是指针,请选择恰当的选项:( )

A、char **p;

B、char (*p)[10];

C、char *p[6];

D、给出的三项中,p都是指针

3、若定义pf为指向float类型变量f的指针,下列语句中( )是正确的。

A、float f, *pf = f;

B、float f, *pf = &f;

C、float *pf = &f, f;

D、float f, *pf =0.0;

4、设有定义语句"int (*ptr)[10];",其中的 ptr 是 10 个指向整型变量的指针。

5、若有定义:int x=0, *p=&x;,则语句printf("%d\n",*p);的输出结果是x的地址。

指针变量和一维数组随堂测验

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))

2、以下程序段数组所有元素输入数据,应在下划线填入的是( )【1】 void main() { int a[10],i=0; while(i<10) scanf("%d", ); }

A、a+(i++)

B、&a[i+1]

C、a+i

D、&a[++i]

3、根据声明int a[10], *p=a; ,下列表达式错误的是( )

A、a[9]

B、p[5]

C、a++

D、*p++

4、设有变量定义 char *lang[ ]={"FOR","BAS","JAVA","C"}; 表达式 *lang[1]>*lang[3]的值是1。

5、直接访问就是直接利用变量的地址直接进行访问。

指针变量和二维数组随堂测验

1、若有变量定义语句"int a[4][3], *p=a[2];" 则表达式p[2]指向的数组元素是( )

A、a[0][1]

B、a[1][1]

C、a[2][2]

D、a[3][0]

2、若有说明语句 "int a[2][4]={2,4,6,8,10,12,14,16},*p=a[0];", 则表达式 *(*(a+1)+2)**(p+1) 的值是( )

A、140

B、80

C、56

D、48

3、下列程序的输出结果是( ) int a[3][3]={{2},{4},{6}}; void main() { int i,*p=&a[0][0]; for(i=0;i<2;i++) { if(i==0) a[i][i+1]=*p+1; else ++p; printf("%d",*p); } }

A、23

B、26

C、33

D、36

4、设有变量定义语句"int a[2][3];",表达式*(a[1]+2) 能正确表示数组 a 中元素地址。

5、若有说明语句"int a[4][10];"且 0<=i<4,0<=j<10,则对数组元素 a[i][j]的错误引用是*(a+i)[j]。

指针变量作为形式参数随堂测验

1、以下程序的输出结果是( ) void sub(int x,int y,int *z) { *z=y-x; } void main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%d,%d,%d\n",a,b,c); }

A、5,2,3

B、-5,-12,-7

C、-5,-12,7

D、5,-2,-7

2、以下函数返回 a 所指数组中最小值所在的下标值 fun( int *a,int n) { int i,j=0,p; p=j; for(i=j;i

A、i=p;

B、a[p]=a[i];

C、p=j;

D、p=i;

3、有以下函数 char *fun(char *p) { return p; } 该函数的返回值是( )

A、无确切的值

B、形参 p 中存放的地址值

C、一个临时存储单元的值

D、形参 p 自身的地址值

4、已定义以下函数fun (int *p){ return *p;}该函数的返回值是形参p的地址值。

5、可以用一个指针变量指向一个函数,然后通过该指针变量调用此函数。

第七单元测验

1、下面程序运行时,如果从键盘上输入 3,5,程序输出的结果是( ) void main( ) { int a,b,*pa,*pb; pa=&a; pb=&b; scanf("%d,%d",pa,pb); *pa=a+b; *pb=a+b; printf("a=%d,b=%d\n",a,b); }

A、a=13,b=13

B、a=8,b=8

C、a=8,b=13

D、出错

2、若有说明语句"int i,j =7,*p=&i;",则与 i=j 等价的语句是( )

A、i=*p;

B、*p=*&j;

C、i=&j;

D、i=**p;

3、C 语言的说明语句"char *p[5];"的含义是 ( )

A、P 是一个指针数组,其数组的每一个元素是指向字符的指针

B、P 是一个指针,指向一个数组,数组的元素为字符型

C、A 和 B 均不对,但它是 C 语言正确的语句

D、C 语言不允许这样的说明语句

4、设变量定义为“int a[2]={1,3}, *p=&a[0]+1;”,则*p的值是( )。

A、2

B、3

C、4

D、&a[0]+1

5、根据声明int (*p)[10], p是一个( )。

A、数组

B、指针

C、函数

D、数组的元素

6、下列程序段的输出是( ) int c[]={1, 3, 5}; int *k=c+1; printf("%d", *++k);

A、3

B、4

C、5

D、6

7、下列程序的输出结果是( ) void main() { char ch[2][5] = { "6934","8254" }, *p[2]; int i, j, s = 0; for (i = 0; i < 2; i++) { p[i] = ch[i]; for (j = 0; p[i][j] > '0'&& p[i][j] <= '9'; j += 2) s = 10 * s + p[i][j] - '0'; } printf("%d\n", s); }

A、6385

B、69825

C、63825

D、693825

8、下面程序的输出结果是() void main() { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4]=a,i,j,k=0; for(i=0; i<3; i++) for(j=0; j<2; j++) k+=*(*p+i)+j); printf("%d\n",k); }

A、25

B、60

C、72

D、86

9、当调用函数时,实参是一个数组名,则向函数传送的是( )

A、数组的长度

B、数组的首地址

C、数组每一个元素的地址

D、数组每个元素中的值

10、下列程序执行后的输出结果是 ( )【1】 void func(int *a,int b[ ]) { b[0]=*a+6; } void main() { int a,b[5]; a=0; b[0]=3; func(&a,b); printf("%d\n",b[0]); }

A、6

B、7

C、8

D、9

11、设有定义:int n1=0,n2,*p=&n2,*q=&n1;,赋值语句*p=*q; 与n2=n1;语句等价。

12、现有定义语句:char *p,* q;表达式 p/=q是正确的赋值语句。

13、设有两条语句"int a,*p=&a;"和"*p=a;",则第 1 条语句中的"*p=&a"是定义指针变量p并对其初始化。

14、char *s="C Language";表示s是一个指向字符串的指针变量,把字符串的首地址赋予s。

15、指针数组的每个元素都是一个指针变量。

16、int (*p)[4]它表示p是一个指针数组,它包含4个指针变量元素。

17、函数名代表该函数的入口地址。因此,可用函数名给指向函数的指针变量赋值。

18、变量的指针,其含义是指该变量的地址。

19、设有下面的程序段:chat s[]=”china”; char *p; p=s;则数组s中的内容和指针变量p中的内容相等。

20、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则c=*p1*(*p2)该语句不能正确执行赋值功能。

第七单元作业

1、从键盘上输入10个数据到一维数组中,然后找出数组中的最大值和该值所在的元素下标。

2、利用指向行的指针变量求5×3数组各行元素之和。

3、编写一个函数,用于统计一个字符串中字母、数字、空格的个数。在主函数中输入该字符串后,调用上述函数,并输出统计结果。要求用指针实现。

4、从键盘中输入字符串,删除字符串中的空格,并打印,要求用指针实现。

5、存在一个字符串: “Today is a wonderful day”。要求:将该字符串中各个单词存放到二维数组:char str[5][10] 中。

期末测试

期末考试

1、已知字符'c' 的ASCII码为99,语句printf ("%d,%c",'c','c'+1); 的输出为( )。提示:字符a的ASCII码为96

A、99,c

B、99,100

C、99,d

D、语句不合法

2、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为

A、int

B、float

C、double

D、不确定

3、字符串"CHINA"在内存存储占用的字节数是( )。

A、5

B、6

C、7

D、无法确定

4、判断字符串a,b相等可以用( )。

A、if(a==b);

B、if(a=b);

C、if(strcpy(a,b));

D、if(strcmp(a,b));

5、下面程序段是输出两个字符串中对应字符相等的字符。则[1]应填()。 char x[]="programming"; char y[]="Fortran"; int i=0; while(x[i]!='\0'&&y[i]!= '\0') { if(x[i]==y[i]) printf("%c",[1]); else i++; } printf("\n");

A、x[i++]

B、y[++i]

C、x[i]

D、y[i]

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

A、数组的首地址

B、数组第一个元素的值

C、数组中全部元素的值

D、数组元素的个数

7、设有数组定义:char arry[10][81]; 则数组arry所占的存储空间为()。

A、10

B、810

C、0

D、81

8、C语言中基本数据类型包括。

A、整型、实型、逻辑型

B、整型、实型、字符型

C、整型、字符型、逻辑型

D、整型、实型、逻辑型、实型

9、以下代码段中循环体的执行次数( ) void main() { char a[]="Programm",*pa=a; for(;*pa!='\0';) pa++; }

A、5

B、6

C、7

D、8

10、把数学条件“x是y的倍数,且x和y都为正数”表示为C语言表达式正确的是

A、x>0 && y>0 && x%y==0

B、x>0 && y>0 || x%y==0

C、x*y>0 && x%y==0

D、x!= y && x%y==0

11、以下标示符合法的是( )

A、fast_1_3

B、?our

C、if

D、five$

12、下面描述正确的是( )

A、在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

B、在C语言中,一个数组中元素的个数可以不确定,允许随机变动

C、在C语言中,同一个数组中元素的数据类型可以不一致

D、在C语言中,定义数组后,就确定了它所容纳的具有相同数据类型元素的个数

13、若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0

A、a[p-a]

B、*(&a[i])

C、p[i]

D、*(*(a+i))

14、C语言中有一个逻辑运算符的优先级高于算术运算符,它是( )

A、&

B、!

C、||

D、&&

15、若有以下说明和语句 //结构体和指针 struct worker { int no; char *name; } work, *p=&work; 则以下引用方法不正确的是( )

A、work.no

B、(*p).no

C、p->no

D、work->no

16、C语言中,在进行混合运算时,数据类型由高级向低级转换。

17、若变量定义为“int x, y; ”,则“x + y = 22;”是符合C语言语法的表达式。

18、while语句的一般形式如下,当表达式的值为“真”时,循环执行,直到表达式的值为“假”,循环中止并继续执行while的下一条语句。

19、函数的实参传递到形参有两种方式:值传递和地址传递。

20、C语言的函数定义中,如果省略了return语句,函数就无法返回主调函数。

期末主观题

1、请下载附件,在答题纸上手写完成主观题,答题纸上注明学号姓名,拍照存入文件夹,命名格式为“学号-姓名-主观题”,与客观题截图文件夹一起打包上传附件。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/169753?site
推荐阅读
相关标签
  

闽ICP备14008679号