C_2练习题

答案文章浏览阅读353次,点赞8次,收藏5次。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。7.设有整型变量a、b、c,其中a,b的值分别为10与20,计算表达式c=(a%2==0)?a:b后,c的值为()二、程序阅读题(本大题共5小题,每小题6分,共30分。16.在一个被调用函数中,关于return 语句使用的描述,错误的是()。https://blog.csdn.net/weixin_47431459/article/details/134876857?spm=1001.2014.3001.5501

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

1.对C语言程序,以下说法正确的是()

A.main函数是主函数,一定要写在最前面。

B.所有的自定义函数,都必须先声明。

C.程序总是从main函数开始执行的。

D.程序中只能调用库函数,不能自己定义函数。

2. 以下()不是合法的C语言标识符。

A. main

B._a

C. printf

D. 4ever

3.C语言程序中,要使用数学库函数(例sqrt、sin等),需要在程序最前面加上包含文件的预处理命令()

A. #include <string.h>

B. #include <stdio.h>

C. #include <math.h>

D.不需要加什么

4.()不是合法的常量。

A.38

B.038

C. 3E8

D. "38"

5.为表示关系x2y3z,应使用C语言表达式()

A. (x>=y)&&(y>=z)

B. (x>=y)AND(y>=z)

C. (x>=y>=z)

D. (x>=y)&(y>=z)

6. 表达式()的值是0。

A.3/5

B.3<5

C.3%5

D. 3/5.0

7.设有整型变量a、b、c,其中a,b的值分别为10与20,计算表达式c=(a%2==0)?a:b后,c的值为()

A.0

B.5

C. 10

D.20

8.若有说明语句:char c='\72';则变量c()

A.包含1个字符

B.包含2个字符

C.包含3个字符

D.说明不合法,e的值不确定

9.假设字符变量ch中存放有小写英文字母,将其转换为相应的大写英文字母的表达式是()。

A. ch= ch-'a'+'A'

B. ch= ch+32

C. tolower(ch)

D. ch-='a'+'A'

10.若a是基本整型变量,。是单精度实型变量,输入语句()是错误的。

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

11.下列程序段的输出结果是( )。

#include <stdio.h>
int main()
{
    int m, k = 0, s = 0;
    for (m = 1; m <= 4; m++){
        switch (m % 4) {
            case 0:
            case 1: s += m; break;
            case 2:
            case 3:s-= m; break;
        }
        k += s;
    }
    printf("%d\n", k);
    return 0;
}

A. 10

B.-2

C.-4

D.-12

12. int a=1,b=2,c=3,t; while(a<b<c) {t=a;a=b;b=t;c--;) printf("%d,%d,%d",a,b,c);输出结果()。

A. 1,2,0

B.2,1,0

C.1,2,1

D.2,1,1

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

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

B. int a[2]=(0,1,2}

C. int a]=(0)

D. int a={{}}

14,以下能正确定义数组并正确赋初值的语句是()

A. int n=5,b[n][n];

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

C. int c[2]D={{1,2},{3,4}}

D. int a[3][2]={[1,2},(3,4}

15. 有以下定义:char x[ ]="abedefg"; char y[ ]=('a','b','c','d','e','f,'g);则正确的叙述为()。

A.数组 x 和数组y等价

B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度

D.数组x的长度小于数组y的长度

16.在一个被调用函数中,关于return 语句使用的描述,错误的是()。

A.被调用函数中可以不用return语句

B.被调用函数中可以使用多个return语句

C.被调用函数中,如果有返回值,就一定要有return语句

D.被调用函数中,一个return语句可以返回多个值给调用函数

17. 若要使函数不带回任何值,可以()。

A.使用return 语句

B.不定义函数类型

C.把函数定义为void类型

D.不返回main()函数

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

A. a[9]

B. p[5]

C. a++

D. *p++

19.下面程序段的运行结果是()。

char a[]="language", "p;

p=a;

while(*p != 'u) {printf("%c", *p-32); p++;}

A. LANGUAGE

B. language

C. LANG

D. langUAGE

20.设有以下语句

Yypedef struct S

{int a; char c;}T;

则下面叙述正确的是

A.可用S定义结构体变量

B.可用T定义结构体变量

C.S 是struct类型变量

D.T是struct S类型变量

 二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。

1_______

#include "stdio.h"
int main ()
{
    int a=2,b=7,c=5;
    switch (a>0) 
    {case 1:switch (b<0) 
            {
                case 1:
                    printf("@")   ;
                    break;
                case 2:
                    printf("!");
                    break;
                    
            }
        case 0:
            switch (c==5) {
                case 0:
                    printf("*");
                    break;
                case 1:
                    printf("*");
                    break;
                default:
                    printf("#");
                    break;
            }
        default:
            printf("&");
    }
    printf("\n");
    return 0;
}

2_______

#include <stdio.h>
struct n
        {int x; char c;};
        void func(struct n b)
                { b.x=20; b.c='y';}
                void main() {
                    struct n a = {10, 'x'};
                    func(a);
                    printf("%d,%c", a.x, a.c);
                }

3_______

#include<stdio.h>
int w=3;
int fun(int k)
{
    if(k==0) return w;
    return(fun(k-1)*k);
}
    int main() {
        int w = 10;
        printf("%d\n", fun(5) * w);
        return 0;
    }

4______

#include<stdio.h>
long fun(int n)
{
long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;
}
int main()
{
    printf("%ld\n",fun(4));
    return 0;
}

5_______

#include "stdio.h"
int func(int a,int b)
{
    int c;
    c=a+b;
    return c;
}
int main()
{
    int x=6,y=7,z=8,r;
    r= func((x--,y--,x+y),z--);
    printf("%d\n",r);
    return 0;

}

三、程序填空题(每空5分,共35分。请将答案填写在答题纸的相应位置上。)

1,本题要求采用选择法排序,将给定的n个整数从大到小排序后输出。

#include "stdio.h"
# define  MAXN 10
        void main()
        {
    int i,index,k,n,temp;
    int a[MAXN];
            scanf("%d",&n);
            for (int i = 0; i < n; i++) {
                scanf("%d",&a[i]);
            }
            for (int k = 0; k < a-i; k++) {
                    ______________
                    for(i=_________;i<n;i++)
                    {
                     if(a[i]>a[index])
                     {
                         ______;
                     }
                     
                        lemp=a[index];
                        a[index]=a[k];
                        a[k]=temp;
                    }
                for (int i = 0; i < n; i++) {
                    printf("%d",a[i]);
                    
                }
            }
        }

2. 本题要求逆序输出一个字符串,要求用递归方式完成。

#include <stdio.h>
_____________
int main() {
    char str[80];
    gets(str);
    _____________
    return 0;
}
    void reverse_str(char *p)
    {
        if(*p)
        {
            reverse_str(_____________);
            putchar(__________);
        }
    }

四、编程题(本大题共 3小题,每小题 15分,共45分。请在答题纸的相应位置上作答。)

1. 中国有句俗语叫“三天打鱼两天晒网”。假设某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第N天中是“打鱼”还是“晒网”?

2,编写程序输出杨辉三角形(要求输出10行如下图)

1

11

121

1331

14 6 4 1 

15 10105 1

3.编写程序:输入多个字符串,输出其中最短的字符串。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJlio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值