美文网首页
程序设计(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)-作业和复习题

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