C_12练习题

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

  1. C 风格的注释,也称块注释或多行注释,以()开始,以()结束。

A./* 和 */
B. {和}
C.[ 和]
D.(和)

2.以下名字,可以作为C语言标识符的是()。

A. num#1
B. 2019Flag
C. integer
D. a.3

  1. 以下说法错误的是()。

A.一个C语言源文件(.c文件)可以不包含main函数
B.一个C语言工程(Project)可包含多个源文件(.c文件),即使这些源文件都编译成功,这个C工程也有可能链接失败
C.C语言头文件(.h文件)和源文件(.e文件)都可以进行编译
D.在一个可以正确执行的C语言程序中,一个C语言函数的声明(原型)可以出现任意多次

4,以下选项中,能用做数据常量的是()

A.OxABC
B.0118
C. 1.5el.5
D.115H

5,下列能正确表示a>10或a<0的关系表达式是()。

A. a>=10 or a<=0
B. a<=10 Il a>=0
C. a>=10 Il a<=0
D.a>=10 && a<=0)

6.设有说明:char w; int x; foat y; double z;则表达式wx+z-y值的数据类型为()

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

7.以下能正确地定义整型变量a,b和e并为它们赋初值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;

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

A. ch=ch-‘a’+‘A’
B. ch = ch+32
C. tolower(ch)
D. ch-=‘a’+‘A’

9,若想通过a&b来使a的二进制码中的首尾两位为原来的值,而其余为0,则b应为(量a,b均占一个字节)。

A.01111110
B. 10000001
C. 视a值而定
D.无法办到

10.C语言的程序一行写不下时,可以()

A.用逗号换行
B.用分号换行
C.在任意一空格处换行NCE
D.用回车符换行

  1. 在嵌套使用if语句时,C语言规定else总是()

A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的i配对
D. 和之前的第一个if配对日

  1. 以下程序的输出结果是()

#include
اint main(){
int a, b;
for(a=1, b=l; a<=100; a++)
{ if(b>=10) break;
if(b%3==1)
{ b+=3;
continue;
}
}
printf(“%d”,a);
return 0;

  1. 以下描述错误的是()

A.字符串数组中可以存放ASCII字符集中的任何字符
B.字符串数组的字符可以整体输入输出
C.字符串数组中只能存放键盘上可以找到的字符
D.不可以用关系运算符对数组中的字符串进行比较14.在执行

14.int a][3]=(1,2,3,4,5,6);语句后, a[1][0]的值是()

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

15.下面的程序段将输出()。
char s[10] = “abed”;
printf(“%d\n”, sizeof(s));

A.4
B.5
C. 10
D. 11

16.C语言中静态变量和外部变量的初始化是在()阶段完成的。

A.程序执行过程中
B.编译
C.运行
D.程序外部

17.下列叙述中正确的是()

A.函数的定义不能嵌套,但函数调用可以嵌套
B.函数的定义可以嵌套,但函数调用不能嵌套
C.函数的定义和调用都不能嵌套
D.函数的定义和调用都可以嵌套

18,存在定义int a[10], x, *pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的()。

A.x=pa;
B.x=
(a+1);
C.x=*(pa+1);
D.x=a[1];

19.C语言的编译系统对宏命令的处理()

A.在程序运行时进行的
B.在对源程序中其他语句正式编译之前进行的
C.在程序连接时进行的
D.和C程序中的其他语句同时进行编译的

20.有如下定义:
struct Student{
char name[10];
int age;
char gender;
}std[3], *p=std;
则以下各输入语句中错误的是:

A. scanf(“%d”,&(*p).age);
B. scanf(“%c”,&std[0].gender);
C.scanf(“%c”,&(p->gender));
D. scanf(“%s”,&std.name);

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

#include 

void main() {
    int num = 0;
    
    while (num <= 6) {
        num++;
        
        if (num % 3 == 0) {
            continue;
        }
        
        printf("%d#", num);
    }
}

2_____

#include 

void cal(int *pscore) {
    static int bonus = 1;
    bonus++;
    *pscore += bonus++;
}

void main() {
    int score = 60;
    
    for (int i = 0; i < 4; i++) {
        cal(&score);
        printf("%d ", score);
    }
}

3____

#include 

void main() {
    int x = 1, y = 1, a = 0, b = 0;

    switch (x) {
        case 1:
            switch (y) {
                case 1:
                    b++;
                    break;
                case 0:
                    a++;
                    break;
                case 2:
                    a++;
                    b++;
                    break;
                case 3:
                    a++;
                    b++;
                    printf("\na=%d, b=%d", a, b);
                    break;
            }
            break;  
    }
}

4______

#include 

void main() {
    int i, j, k;
    char space = ' ';

    for (i = 0; i < 4; i++) {
        for (j = 1; j <= i; j++)
            printf("%c", space);

        for (k = 0; k < 4; k++)
            printf("%d", k);

        printf("la\n");
    }
}

5_______

#include 

int f(int a) {
    return (a * b + c);
}

int main() {
    int b = 3;
    static int c = 8;
    b++;
    c++;
    int a = 3, i;

    for (i = 1; i < 4; i++) {
        printf("%d ", f(a));
    }

    return 0; // Added a return statement for main
}

三、程序填空题(共 35分。请将答案填写在答题纸的相应位置上。)
1.函数 del(s,i,n)的功能是从字符串s中删除从第i个字符开始的n个字符。主函数调用del函数,从字符串“management”中删除从第3个字符开始的4个字符,然后输出删除后的字符串。

#include 
void del(char s[], int i, int n) {
    int j, k, length = 0;
    while (s[length] != '\0')
    
       ___________;

    --i;
    j = i;
    k = i + n;

    while (k < length)
        s[j++] = ___________;;

    ___________;
}

int main() {
    char str[] = "management";

    del( ___________;);

    printf("The new string is: %s", str);

    return 0;
}

2,输入2个整数a和b,交换它们的值。要求定义和调用函数swap(int*pa, int *pb)实现。

#include 

void swap(int *pa, int *pb);

int main() {
    int a, b;

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

    swap( ___________);

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

___________;
 {
    int temp;
 	___________;
}

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

1.编程计算并输出一元二次方程ax2+bx+c=0的两个实根,其中a、b、c的值由用户从键盘输入。

  1. 编写程序,根据以下公式求ππ的近似值,要求累加到某项小于le-6时为止。
    在这里插入图片描述
    3,编写函数mystreat(char *s1,char *s2),该函数功能是将两个字符串连接起来(不允许使用streat 函数)。

你可能感兴趣的:(2模拟0_C,c语言,算法,开发语言,河北专升本)