美文网首页
程序设计(c)-作业和复习题

程序设计(c)-作业和复习题

作者: azheng2017 | 来源:发表于2018-06-29 17:38 被阅读0次

程序设计(C)作业一

1. [endif]C语言程序的执行,总是起始于(   )。

A.程序中的第一条可执行语句 

B.程序中的第一个函数

C.main函数

D.包含文件中的第一个函数

2. [endif]以下叙述不正确的是(   )。

A.一个C源程序必须包含一个main函数

B.一个C源程序可由一个或多个函数组成

C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

3. [endif]一个C语言程序是由(   )。

A.一个主程序和若干个子程序组成 B.若干函数组成

C.若干过程组成 D.若干子程序组成

4. [endif]C语言程序能够在不同的操作系统下运行,这说明C语言具有很好的(   )。

A.适应性  B.移植性    

C.兼容性          D.操作性

5. [endif]C语言规定,在一个源程序中,main函数的位置(   )。

A.必须在最开始             

B.必须在系统调用的库函数的后面

C.可以任意   

D.必须在最后

6. [endif]下列说法中正确的是(   )。

A.C语言程序书写时,不区分大小写字母

B.C语言程序书写时,一行只能写一个语句

C.C语言程序书写时,一个语句可分成几行书写

D.C语言程序书写时每行必须有行号

7. [endif]下面对C语言特点,不正确描述的是(   )。

A.C语言兼有高级语言和低级语言的双重特点,执行效率高

B.C语言既可以用来编写应用程序,又可以用来编写系统软件

C.C语言的可移植性较差

D.C语言是一种结构化模块化程序设计语言

8. [endif]C语言程序的注释是(   )。

A.由“/*”开头,“*/”结尾 

B.由“/*”开头,“/*”结尾

C.由“//”开头

D.由“*/”或“//”开头

[if !supportLists]9. [endif]C语言程序的语句都是以(   )结尾。

A.“.” B.“;”         C.“,”      D.都不是

[if !supportLists]10. [endif]标准C语言程序的文件名的后缀为(   )。

A..c B..cpp        C..obj      D..exe

[if !supportLists]11. [endif]C语言程序经过编译以后生成的文件名的后缀为(   )。

A..c   B..obj        C..exe      D..cpp

[if !supportLists]12. [endif]C语言程序经过链接以后生成的文件名的后缀为(   )。

A..c        B..obj     C..exe      D..cpp

[if !supportLists]13. [endif]C语言编译程序的首要工作是(   )。

A.检查C语言程序的语法错误

B.检查C语言程序的逻辑错误

C.检查程序的完整性 

D.生成目标文件

[if !supportLists]14. [endif]下面四个选项中,均是不合法的用户标识符的选项是(   )。

A.A  P_0   do         B.float  la0   _A

C.b–a  sizeof   int      D._123  temp  int

[if !supportLists]15. [endif]下面四个选项中,均是合法整型常量的选项是(   )。

A.160  –0xffff   011           B.–0xcdf   01a   0xe

C.–01  986,012   0668          D.–0x48a   2e5   0x

[if !supportLists]16. [endif]下面四个选项中,均是不合法的浮点数的选项是(   )。

A.160.  0.12    e3              B.123  2e4.2  .e5

C.–.18  123e4   0.0             D.–e3  .234   1e3

[if !supportLists]17. [endif]以下不合法的字符常量是(    )

A. ‘\018’   B. ‘\’’’ C. ‘\\’ D. ‘\xcc’

[if !supportLists]18. [endif]下面四个选项中,均是正确的数值常量或字符常量的选项是(   )。

A.0.0   0f   8.9e   '&'         B."a"  3.9e–2.5  1e1  '\"'

C.'3'   011  0xff00  0a         D.+001  0xabcd  2e2  50.    

[if !supportLists]19. [endif]若有说明语句:char c = '\72';则变量c(   )。

A.包含1个字符          B.包含2个字符

C.包含3个字符          D.说明不合法,c的值不确定

[if !supportLists]20. [endif]若有定义:int a = 7; float x = 2.5, y = 4.7; 则表达式x + a % 3 * (int)(x + y) % 2 / 4的值是(   )。

A.2.500000     B.2.750000    C.3.500000      D.0.000000

[if !supportLists]21. [endif]设变量a是整型,f是实型,i是双精度型,则表达式

10 + 'a' + i * f值的数据类型为(   )。

A.int           B.float     C.double      D.不确定

[if !supportLists]22. [endif]在C语言中,要求运算数必须是整型的运算符是(   )。

A./      B.++      C.!=      D.%

[if !supportLists]23. [endif]若变量已正确定义并赋值,下面符合C语言语法的表达式是(   )。

A.a:=b+1      B.a=b=c+2    

C.int 18.5%3      D.a=a+7=c+b

[if !supportLists]24. [endif]若变量a、i已正确定义,且i已正确赋值,则合法的语句是(   )。

A.a==1      B.++i;     C.a=a++=5;      D.a=int(i);

[if !supportLists]25. [endif]下面正确的字符常量是(   )。

A.”c”      B.’\\”      C.’W’      D.”

[if !supportLists]26. [endif]假设变量a,b均为整型,则表达式 (a=2, b=5, b++, a+b) 的值是(   )。

A.7      B.8      C.6      D.2

[if !supportLists]27. [endif]假设变量x,y均为double型,则表达式 x=2, y=x+3/2 的值是(   )。

A.3.500000      B.3      C.2.000000      D.3.000000

[if !supportLists]28. [endif]判断char型变量ch是否为大写字母的正确表达式是(   )。

A.‘A’<=ch<=‘Z’      

B. (ch>=‘A’)&(ch<=‘Z’)

C. (ch>=‘A’)&&(ch<=‘Z’)

D. (‘A’<= ch)AND(‘Z’>= ch)

[if !supportLists]29. [endif]选出正确的输入格式()。

int a; float b; char c;  

scanf(“a = %d,b = %f,c = %c”,&a ,&b ,&c );

    A. 1,2.0,n      B. a = 1,b = 2.0,c = n    

C. 1 2.0 n  D. 12.0n

[if !supportLists]30. [endif]已知函数abc的定义为:void  abc( ) {……} 则函数中void的含义是(    )

[if !supportLists]A. [endif]执行函数abc 后,函数没有返回值

[if !supportLists]B. [endif]执行函数abc 后,函数不再返回

[if !supportLists]C. [endif]执行函数abc 后,可以返回任意类型

[if !supportLists]D. [endif]以上答案都不对

参考答案:

CDBBC CCABA BCACA BADAA     CDBBC BDCBA

第2次作业指南

1. 在C 语言中,复合语句要用一对()括起来。

A. 方括号  B. 圆括号  C. 大括号  D. 尖括号

[提示]参考讲稿3.1.1-4

2. C 语言中,下面哪项是不合法的标识符?()

A. user B. switch  C. _345 D. Abc

[提示]参考讲稿2.1.1

3. 以下说法中正确的是()

A. C 语言比其他语言高级

B. C 语言不用编译就能被计算机执行

C. C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D. C 语言出现的最晚,具有其他语言的一切优点

[提示]这个留给自己发挥吧,你觉得不用翻书考证就能看出来的就是答案啦

4. 若变量xy 已正确定义并赋值,以下符合C 语言语法规则的语句是()

A. ++x, y = x--;

B. x + 1 = y;

C. x = x + 10 = x + y;

D. double(x)/10

[提示]自己编个小程序,包含上述语句,然后编译一下,编译器报错的地方就是不对的。以后涉及程序、程序段、语句、表达式的题目都可以这样做。

5. 下列程序的输出结果为()

void main()

{

int x, y, z;

x = y = 1;

z = x++, y++, ++y;

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

}

[if !supportLists]A. [endif]2, 3, 3 B. 2, 3, 2 C. 2, 3, 1  D. 2, 2, 1

[提示]这个不用提示吧,上机运行一下就知道了。程序设计课要动手,干看是学不会的哟。

6. 数值029 是一个()

A. 八进制数  B. 十六进制  C. 十进制  D. 非法数

[提示]参考讲稿2.2.2

7. 逻辑运算符两侧运算对象的数据类型()

A. 只能是0 或1 B. 只能是0 或非0 正数

C. 可以是整型或字符型数据  D. 可以是任何类型的数据

[提示]自己编个小程序,写几个逻辑表达式,将C语言中所有的数据类型都放到逻辑表达式中试一试。

8. 对于int a, 表达式1 <= a <= 5 的值是()

A. 0 B. 1  C. 不定  D. 表达式语法有误

[提示]自己编个小程序,……

9. 执行下列语句段后x 的值为()

int a = 14, b = 15, x;

char c = ‘A’;

x = (a && b) && (c < ‘a’)

[if !supportLists]A. [endif]TRUE  B. FALSE C. 0 D. 1

[提示]自己编个小程序,包含上述程序段,然后在debug中观察一下x的值。如果不会用debug,请看3月5日的课程,老师有很多演示。

10、x, y, z 被定义为int 型变量,若从键盘为其输入数据,则正确的输入语句是()

A. input x, y, z

B. scanf(“%d%d%d”, &x, &y, &z);

C. scanf(“%d%d%d”, x, y, z);

D. read(“%d%d%d”, &x, &y, &z);

提示:此题考察格式化输入函数scanf 的用法。

11、若w=1, x = 2, y=3, z = 4 ,则条件表达式w < x ? w: y < z ? y : z 的值是()

A. 1  B. 2 C. 3 D. 4

提示:此题考察条件运算符的结合性。

12、给定如下程序

#include

void main()

{

char c1 = ‘A’, c2 = ‘a’;

printf(“%c\n”, (c1, c2));

}

则以下叙述正确的是()

A. 程序输出大写字母A B. 程序输出小写字母a

C. 格式说明符不足,编译出错 D. 程序编译通过,但运行时出错

提示:此题考察对标准输出函数和逗号运算符的理解。

13、下列程序的输出结果是()

#include

void main()

{

int a = 2, b = 3, c = 0, d;

d = ! a && !b || !c;

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

}

A. 1  B. 0 C. 编译出错 D. -1

提示:此题考察逻辑运算符的优先级。

14、下列程序的输出结果是()

#include

void main()

{

int a = 55, b = 50, c = 60, d;

d = a > 20 ? b : c;

switch(d) {

case 40:printf(“%d”, a);

case 50: printf(“%d”, b);

case 60: printf(“%d”, c);

default: printf(“$\n”);

}

}

A. 50, 60 B. 50, $ C. 60, $ D. 50, 60, $ 

提示:此题考察switch-case 结构跳转规律。

15、给定如下程序段,请选择描述正确的说法()

int i = 9;

while(i = 0) i--;

A. while 循环执行9 次  B. 循环体语句执行一次

C. 循环体语句一次也不执行  D. 循环是无限循环

提示:此题考察循环结构,特别是循环条件的判断。

16、设n 为整型变量,则for(n = 10; n >= 0; n--) 循环的次数为()

A. 9 B. 10 C. 11  D. 12

提示:此题考察对for 循环中三个表达式的理解。

17、对表达式for( 表达式1; ; 表达式3)可以理解为()

A. for(表达式1; 0; 表达式3)

B. for(表达式1; 1; 表达式3)

C. for(表达式1; 表达式1; 表达式3)

D. for(表达式1; 表达式3; 表达式3)

提示:此题考察对for 循环中三个表达式的理解。

18、以下能正确定义一维数组的选项是()

A. int a[5] = {0, 1, 2, 3, 4, 5}; B. char a[] = {0, 1, 2, 3}

C. char a = {‘A’, ‘B’, ‘D’} D. int a[5] = “0123”;

提示:此题考察一维数组初始化的规定。

19. 已有定义int x[3][2],以下能正确引用数组元素的选项是()

A. x[2][2] B. x[1][2] C. x[2][1] D. x[0][2]

提示:此题考察数组下标的合法取值范围。

20. 有以下语句,int x; char c[10]; 则正确的输入语句是()

A. scanf(“%d%s”, x, &c); B. scanf(“%d%s”, &x, &c);

C. scanf(“%d%s”, x, c); D. scanf(“%d%s”, &x, c);

提示:此题考察标准输入函数scanf 对普通变量和数组变量的输入约定。

参考答案:

CBCAC DCBDB ABADC CBACD

 

第3次作业答案(红字为答案)

1. 下列叙述中错误的是( )

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

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

C. 在程序执行过程中,当数组元素下标超出定义的下标范围时,系统将给出“下标”越界的错误提示

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

提示:请从数组下标的合法取值范围来考虑。

2. 已有定义char a[] = “xyz”,b[]={‘x’, ‘y’, ‘z’} ,以下叙述正确的是( )

A. 数组a 和b 的长度相同 B. 数组a 的长度小于数组b 的长度

C. 数组a 的长度大于数组b 的长度  D. 上述说法均不正确

提示:此题考察字符数组长度和字符串长度之间的关系。

3. 以下能正确定义一维数组的选项是( )

A. int num[]; B. #define N 100 int num[N]

C. int num[0..100]; D. int N = 100; int num[N];

提示:此题考察一维数组的维数界定问题。

4. 下列程序的输出结果是( )

#include

void main()

{

char a[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘\0’};

int i, j;

i = sizeof(a); j = strlen(a);

printf(“%d, %d\n”, i, j);

}

A. 9,9 B. 8, 9 C. 1, 8 D. 9,8

提示:此题考察字符数组长度和字符串长度之间的关系。

5. 以下不能正确定义二维数组的选项是( )

A. int a[2][] = {{1, 2}, {3, 4}};  B. int a[][2] = {1, 2, 3, 4};

C. int a[2][2] = {{1}, {2}}; D. int a[2][2] = {{1}, 2, 3};

提示:此题考察二维数组初始化的规定。

6、C 语言规定,若未对函数返回类型加以说明,则函数的隐含类型为( )

A. void B. double C. int  D. char

分析:教材中有答案,但我们不推荐大家在编程时省略函数返回类型。

7、若已定义的函数有返回值,则以下关于该函数调用的叙述错误的是( )

A. 函数调用可以作为独立语句存在

B. 函数调用可以作为一个函数的实参

C. 函数调用可以出现在表达式中

D. 函数调用可以作为左值而被赋值

分析:基本概念题,可查书或上机验证。

8、下列说法中错误的是( )

A. 在不同的函数中可以使用相同名字的变量

B. 函数中的形参是局部变量

C. 在一个函数内定义的变量只在本函数范围内有效

D. 在一个函数的复合语句中定义的变量只在本函数范围内有效

分析:基本概念题。考察变量的作用域和生命期。

9、下列说法中正确的是( )

A. 定义函数时,形参的类型说明可以放在函数体内

B. return 后面的值不能为表达式

C. 如果函数值类型与return 后的返回值类型不一致,则以函数值类型为准

D. 如果形参与实参的类型不一致,则以实参类型为准

分析:基本概念题,可查书或上机验证。

10、阅读下列程序段,其执行结果为( )

#include

void fun(int a)

{

int x = 5;

x += a++;

printf(“%d,”, x);

}

void main()

{

int a = 3, x = 1;

fun(a);

x += a++;

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

}

A. 8,2 B. 8,3 C. 8,4  D. 8,5

分析:考察大家对传值调用和传址调用的理解。

11、阅读下列程序段,其执行结果为()

#include

void main()

{

int a = 4, b = 6, c = 7;

double d;

double fun(int, int, int);

printf(“d = %lf\n”, fun(a, b, c));

}

double fun(int a, int b, int c)

{

return a % b * c;

}

A. 27 B. 27.000000 C. 28 D. 28.000000 

分析:可上机验证,留意一下函数声明的方式,以及输出语句中对函数返回值的处理。

12、下列说法中不正确的是( )

A. C 语言规定,不能在一个函数的内部再定义函数

B. 在没有声明函数返回值类型的情况下,默认函数返回值类型为int 型

C. 函数的类型可以是整型、实型、字符型,但不能是指针类型

D. 函数可以没有形参,但函数名后的括号不能省略

分析:基本概念题。

13、一个变量的指针就是( )

A. 变量的名称 B. 变量的地址 C. 变量的类型 D. 变量的值

分析:基本概念题。

14. 两个指针变量不能( )

A. 相加 B. 相减 C. 比较 D. 指向同一地址

分析:基本概念题。查书或上机验证。

15. 在C 语言中,对变量的访问方式是()

A. 能直接访问,也能间接访问 B. 能直接访问,不能间接访问

C. 不能直接访问,能间接访问 D. 直接、间接均不能

分析:基本概念题。

16. C 语句: int (* pa)[5]; 中,pa 表示的是一个( )

A. 指针数组的名称

B. 指向整型变量的指针

C. 指向包含5 个整型元素的一维数组的指针

D. 指向函数的指针

分析:基本概念题。

17. C 语句int * func(); 中,func 表示的是()

A. 返回值为指针的函数名称

B. 指向整型变量的指针

C. 指向数组的指针

D. 指向函数的指针

分析:基本概念题。

18. 给定下列程序,假定从键盘输入数据1、2,则执行结果为( )

#include

void swap(int * p1, int p2)

{

* p1 = * p1 + p2;

p2 = p2 + * p1;

}

void main()

{

int a, b, * p1;

scanf("%d, %d", &a, &b);

p1 = &a;

swap(p1, b);

printf("a = %d, b = %d\n", a, b);

}

A. 3,5 B. a = 3, b = 5 C. 3, 2 D. a = 3,b = 2

分析:考察传值与传址的区别。

19. 给定下列程序,则运行结果为( )

#include

void fun(int x, int y, int * z)

{

* z = x – y;

}

void main()

{

int a, b, c;

fun(11, 5, &a);

fun(8, a, &b);

fun(a, b, &c);

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

}

A. 2,4,6 B. 2, 6, 4 C. 6, 2, 4  D. 6,4,2

分析:传址与传值。

20. 给定下列程序,则其运行结果为()

#include

void main()

{

static int array[][4] = {{1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19 ,21, 23}};

int (* p)[4], i, j, sum[3];

p = array;

for(i = 0; i < 3; i++)

{

sum[i] = 0;

for(j = 0; j < 4; j++)

sum[i] += *(*(p + i) + j);

printf(“%d, ”, sum[i]);

}

}

A. 16, 48, 80 B. 164880 C. 144 D. 80

分析:考察用指针变量遍历二维数组的方法。重点在理解,否则考试时不可能有机会上机验证。

相关文章

  • 程序设计(c)-作业和复习题

    程序设计(C)作业一 1.[endif]C语言程序的执行,总是起始于()。 A.程序中的第一条可执行语句 B.程序...

  • 图灵计算机科学系列丛书大收集

    C/C++ [图灵程序设计丛书].C++性能优化指南[图灵程序设计丛书].嗨翻C语言 C# [图灵程序设计丛书]....

  • ST300 Assessed Coursework 2019

    代写ST300留学生作业、Java,c++程序设计作业代做、代写Python实验作业、代做Layout作业 RGL...

  • 计算机二级考试

    C语言程序设计、VB语言程序设计、Java语言程序设计、Access数据库程序设计、C++语言程序设计、MySQL...

  • 书籍推荐

    1.《C primer plus》----《C程序设计语言》-----《C和指针》、《C专家编程》、《C缺陷与陷阱...

  • GeekBand C++ week3

    一、导论 1.I和II的区别 I:C++面向对象程序设计II: C++程序设计兼谈对象模型 勿在浮沙筑高台 2.C...

  • Java程序设计复习题

    1. ==与equals的区别 对于引用数据类型来说,==是比较它们的内存空间是不是相同的,而equals是比较它...

  • C语言程序设计【0039】

    (1)“构建程序设计的思想和方法、提升阅读程序能力和编写程序能力”是C语言程序设计的课程学习目标。请简要说明你在C...

  • C++模板template用法

    引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标...

  • 多年程序员推荐:学习C语言的书籍有哪些?

    c++程序设计教程 c++编程思想 c++大学教程 c++程序设计语言 数据结构算法与应用c++语言描述 c++标...

网友评论

      本文标题:程序设计(c)-作业和复习题

      本文链接:https://www.haomeiwen.com/subject/lhoayftx.html