C练习题_2

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

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

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

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

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

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

2,在C程序中,若函数没有返回值,则定义函数函数时需定义函数类型为

A. int

B. double

C. void

D. char

  1. 以下叙述不正确的是()

A.在C程序中,语句之间必须要用分号";"分隔

B.若a是实型变量,

C程序中a=10是正确的,因为实型变量中允许存放整型数C.在C程序中,无论是整数还是实数都能正确无误地表示

D.在C程序中,%是只能用于整数运算的运算符

4·若有定义: intx;要将x强制转换为双精度型,应该写成()

A. x(double)

B. x(double)

C. (double)x

D. double(x)

  1. 在 C语言中,引用数组元素时,其数组下标的数据类型允许是()

A. 整型常量

B.整型表达式

C. 整型常量或整型表达式

D.任何类型的表达式

6,若变量已正确定义,执行语句scanf("%d%d%d ",&kl,&k2,&k3);时,()是正确的输入。

A. 2030,40

B. 2030 40

C. 20, 3040

D. 20,30,40

  1. 以下程序的输出结果是()
    #include <stdio.h>
    void main()
    {
    int num;
    for( num=0;num<=2;num++)
    printf("%d",num);、
    }

A. 1

B. 123

C. 012

D. 1234

  1. 设整型变量 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是()
    A. 33
    B. 2
    C.1
    D. 0

9.已知:charc='A';int i=1;j执行语句j=!c&&i++;,则i和j的值是()

A.1,1

B.1,0

C.2,1

D.2,0

10,设有如下定义: int(*ptr));则以下叙述中正确的是()

A. ptr是指向一维数组的指针变量

B. ptr是指向 int 型数据的指针变量

C. ptr 是指向函数的指针,该函数返回一个 int型数据

D. ptr是一个函数名,该函数的返回值是指向int型数据的指针

  1. 不合法的八进制数是()

A. 00

B. 028

C. 077

D. 01

  1. 以下函数说明正确的是()

A. int add(char x[][]);

B. int add(int x;int y);

C. char add( x,y);

D.float add(int x, int y);

13,以下选项中,不能作为合法常量的是()

A. 1.234e04

B. 1.234e0.4

C. 1.234e+4

D. 1.234e0

  1. 与语句"y=(x>0?1:x<0?-1:0);"功能相同的if语句是()
    A. if (x> 0)y = 1;
    else if (x <0)y =-1;
    else y = 0;

B. if (x)

if (x> 0) y = 1;

else

if (x <0)y =-1;

else y= 0;

C. y=-1;

if (x)

if (x> 0)y =1;

else if (x=0)y=0;

else y=-1;

D. y=0;

if (x>=0)

if (x>0)y=1;

else y =-1;

15.已知字符b的ASCI码为98 ,语句printf("%d,%c","b','b'+1);的输出为()

A. 98,b

B. 98,c

C. 98, 99

D. 语句不合法

  1. 由C 语言源程序文件编译而成的目标文件的缺省扩展名为()

A. cpp

B. exe

C. obj

D. C

  1. C 语言程序的基本模块为()

A.表达式

B. 标识符

C. 语句

D. 函数

18,循环体至少被执行一次的语句为()循环语句

A. for

B. while

C. do-while

D. 任一种

19.x>0 ]y=5 的相反表达式为()

A. x<=0 || y!=5

B. x<=0 && y!=5

C. x>0|| y!=5

D. x>0 && y=5

  1. 在下面的字符数组定义中,)语句有语法错误()

A. char a[20]="abcdefg";

B. char a="x+y=55,";

C. char a[15]={'1','2'}:

D. char a[10]='5';

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

c 复制代码
#include <stdio.h>

#define N 5

void main() {
    int i, p = 1, s = 0;
    
    printf("%5s%5s%5s\n", "i", "p", "s");  
    
    for (i = 1; i <= N; i++) {
        p *= i;
        s += i;
        
        printf("%5d%5d%5d\n", i, p, s);
    }
}

2_______

c 复制代码
#include <stdio.h>

void main() {
    int x = 24, y = 88;
    int i = 2, p = 1;

    do {
        while (x % i == 0 && y % i == 0) {
            p *= i;
            x /= i;
            y /= i;
        }
        i++;
    } while (x >= i && y >= i);

    printf("%d\n", p * x * y);
}

3______

c 复制代码
#include <stdio.h>

void main() {
    int a[12] = {76, 63, 54, 62, 40, 75, 80, 92, 77, 84, 44, 73};
    int b[4] = {60, 70, 90, 101};
    int c[4] = {0};
    int i, j;

    for (i = 0; i < 12; i++) {
        j = 0;
        while (a[i] >= b[j]) {
            j++;
            c[i]++;
        }
    }

    for (i = 0; i < 4; i++)
        printf("%d", c[i]);

    printf("\n");
}

4________

c 复制代码
#include <stdio.h>

void main() {
    int a = 10, b = 20;
    
    printf("%d %d\n", a, b);

    {
        int b = a + 25;
        printf("%d %d\n", a, b);
        a *= 4;
        printf("%d %d\n", a, b);
    }
}

5______

c 复制代码
#include <stdio.h>

int main() {
    int a[8] = {4, 8, 12, 16, 20, 24, 28, 32};
    int *p = a;

    do {
        printf("%d ", *p);
        p += 2;
    } while (p < a + 8);

    printf("\n");

    return 0;
}

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

1程序功能用~,之间不同的3个数构成一个三位数,下面程序将统计出共有多少个这样的数语填空。

#include stdio:h

void main()

{

int ij,k,count=0;

for(i=1;i<=9;i++)

for(j= نj<=9:j++)

if②_continue;

else for(k=0;k<=9;k++)

if(③{printf("%d%d%d",ij,k);count++;}

printf("n%d",count);

}

2.输出1-100中除了能被5整除之外的所有数。且每行输出4个数。#include <stdio.h>

void main

{

int ij=l;

for(i=1;i<=100;i++)

{

if(i%5-0)

printf("%4d",i)

;if②

printf("n");j+;

}

}

3,连续输入一批学生的成绩,直到输入成绩的数量超过50或者输入成绩不是有效成绩(有效成绩为0-100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n):在有n个元素的一维数组array中找出并返回最大值。

#include <stdio.h>

#define MAXNUM 50

int getmax(int array,int n)

{

int k,max;

for(k=1;k<n;k++)

if(max<array[k]) max=array[k];

return max;

}

void main()

{

int k,x;

int mark[MAXNUM);

printf("enter marks:");

k=0;

scanf("%d",&x);

whlle(②){

mark[k++]=x;

scanf("%d",&x);

}

if(k>0) printf("max=%dn",getmax(mark,k));

else printf("No marks!\n");

}

四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。),编写一个函数fun0,首先从键盘上输入一个4行4列的一个实数矩阵到一个二维数组a[4][4]中,接着求出主对角线上元素之和,最后返回求和结果。

2.编程,将十进制数转换成任意进制数。

3,编程,输入10个整数存入数组a,再输入一个整数x,在数组a中查找x,找到输出x在10个数中的序号,找不到则输出"no found"

相关推荐
Ajiang28247353041 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
幽兰的天空1 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou5 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
----云烟----6 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024066 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
开心工作室_kaic7 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it7 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康7 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神7 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式