单项选择题


1.题
(3.0分) 以下叙述正确的是()。
A.在C程序,至少要包含一个库函数
B.C程序的一行可以写多条语句
C.对一个C程序进行编译就可以生成可执行文件
D.C程序中的注释只能单独一行,不能位于某条语句的后面

2.题
(3.0分) 下面选项中,是不合法的C语言整型常量的是()。
A.0xffff
B.1234
C.3e-3
D.018

3.题
(3.0分) 下面选项中, 不合法的C语言字符串常量的是()。
A.'123'

4.题
(3.0分)

C程序中,已有语句int x;float y;char z;
scanf("%d%f%c",&x,&y,&z); ,要求使用变量x,y,z的值分别为5,3.14,B,则正确的数据输入方式是()。

A.5 3.14 B
B.5 3.14B
C.53.14B
D.53.14 B

5.题
(3.0分) 对于整型变量x,y,z,且x=1,y=2,z=3,则下面表达式值为0的是()。
A. y<=z
B. x<=y||y<=z&&z
C. !(x<=y)||(y<=z)
D. !x&&(y<=z)

6.题
(3.0分) 已有语句int x=2,y=3; 关于if语句编译提示出错的是()。
A. if(x>=y);

7.题
(3.0分) 已有定义int a,b,c;则表达式(a = 1,b = 2,b++,a+b)的值为()
A.1
B.2
C.3
D.4

8.题
(3.0分) 已有整型变量x=0,语句while(x++<=2) ; 以下叙述正确的是()。
A. while循环执行2次
B. while循环执行3次
C. while循环是无限循环
D. while循环一次也没有执行

9.题
(3.0分) 执行语句for(i=1;i++<10;);后变量i的值为()。
A. 9
B. 10
C. 11
D. 溢出

10.题
(3.0分) C语言中一维数组定义正确的语句是()
A.int a(5)
B.int n=5,a[n];
C.const int n=5; int a[n];

11.题
(3.0分) 对于两个整型指针变量p,q,两个变量之间不可以的运算是( )
A.=
B.<
C.+
D.-

12.题
(3.0分) C语言中,有语句 int x,*p=&x;以下叙述不正确的是()。
A.语句中的*号是一个地址运算符
B.语句中的变量p只能保存int类型变量的地址
C.语句中*p=&x把变量x的地址赋值给变量p
D.语句中int x,*p=&x;等同于语句 int x,*p; p=&x;

13.题
(3.0分) C语言程序中,函数返回值的类型取决于()
A.形参的数据类型
B.调用该函数的主调函数类型
C.实参的数据类型
D.该函数定义时所指定的函数类型

14.题
(3.0分)

以下对结构体类型point中成员x的不正确引用是( )

struct point

{ int x;

int y;

}a,*p;

p = &a;

A.a.x
B.&a.x
C.p->x
D.(*p).x

15.题
(3.0分) 某算法对数据序列的大多数操作是在序列的未尾端插入或删除元素,则用下面选项的存储能减少算法的运算时间的是( )。
A.单向链表
B.单向循环链表
C.双向链表
D.双向循环链表
如有发现错题,辛苦提出哈~

编程题

第一题

第三届全国高校计算机能力挑战赛-C

#include <stdio.h>

struct  User
{
    char *name[10];
    double c1;
    double c2;
    double c3;
};

int main()
{
int garde[3]; int score[5]; int max_result=0; int result=0; struct User user[5]; //录入数据 scanf("%d %d %d",&garde[0],&garde[1],&garde[2]); for(int i=0;i<5;i++) { scanf("%s %lf %lf %lf",user[i].name,&user[i].c1,&user[i].c2,&user[i].c3); } //计算 for(int i=0;i<5;i++) { score[i]=user[i].c1*garde[0]*0.01+user[i].c2*garde[1]*0.01+user[i].c3*garde[2]*0.01; if(score[i]>max_result) { max_result=score[i]; result=i; } } //输出 printf("%s %d",user[result].name,max_result); system("pause"); return 0; }

超时啦!

第二题

第三届全国高校计算机能力挑战赛-C

A21表示11进制,后面21对应的十进制为23

B10表示12进制,后面10对应的十进制为13

Cb表示13进制,后面b对应的十进制为11

 

第三题

第三届全国高校计算机能力挑战赛-C

参考:空间中任意三个点组成三角形面积

#include <stdio.h> 
#include <math.h>
#include <stdbool.h>

/*
3
0 0 0
0 4 0
0 0 3
*/
 
struct Node{
    int x, y, z;
};
 
double MAX = 0;
int n;
struct Node *t;
//计算两点之间的距离
double L3(int i, int j){
    return sqrt((double)((t[i].x - t[j].x)*(t[i].x - t[j].x) + (t[i].y - t[j].y)*(t[i].y - t[j].y) + (t[i].z - t[j].z)*(t[i].z - t[j].z)));
}
 
//判断是否是三角形
bool isSan(int i, int j, int k){
    double a = L3(i, j);
    double b = L3(i, k);
    double c = L3(k, j);
    if (a < (b + c) && b < (a + c) && c < (a + b))
    {
        return true;
    }
    return false;
}
 
//计算三角形面积
double CmputeArea(int i, int j, int k){
    double a = L3(i, j);
    double b = L3(i, k);
    double c = L3(k, j);
    double p = (a + b + c) / 2;
    return  sqrt(p * (p - a) * (p - b) * (p - c));
}
 
//遍历所有可能的三个点
void run(){
    for (int i = 0; i < n; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            for (int k = j + 1; k < n; k++)
            {
                if (isSan(i, j, k))
                {
                    double tArea = CmputeArea(i, j, k);
                    if (tArea > MAX)
                    {
                        MAX = tArea;
                    }
                }
            }
        }
    }
}

int main(){
    
    //输入
    scanf("%d",&n);
    t=(struct Node*)malloc(sizeof(struct Node)*n); 
    for (int i = 0; i < n; i++)
    {
        scanf("%d %d %d",&t[i].x,&t[i].y,&t[i].z);    
    }

    //计算
    run();
    
    //输出
    printf("%.2lf\n", MAX);
    free(t);
    system("pause");
    return 0;
}

 

第四题

第三届全国高校计算机能力挑战赛-C

 

相关文章: