Dotcpp  >  试卷列表  >  华中科技大学C语言程序设计期末试卷

华中科技大学C语言程序设计期末试卷


第1题

当全局变量与局部变量重名时,那么在调用时(   )

共 2 分 

第2题

请阅读下面的程序,选择正确的输出结果。(  )

1
2
3
4
void main()
{
printf("%d",null);
}
共 2 分 

第3题

若程序中有下面的说明和定义:

1
2
3
4
5
6
struct abc 
{   
int x;   
char y;
}
struct abc s1,s2;

则会发生的情况是(  )。

共 2 分 

第4题

C语言中下面哪个不是循环语句?(  )

共 2 分 

第5题

下列关于指针变量的描述,不正确的是(  )。

共 2 分 

第6题

若有以下定义,则正确的语句是(  )。union data {int i;char c:float f} a;jnt n;

共 2 分 

第7题

C语言中可处理的文件类型是(  )。

共 2 分 

第8题

关于C语言中 printf()函数与 scanf()函数,下列描述中正确的是(  )。

共 2 分 

第9题

若有定义:

1
2
3
struct KeyWord{
char Key[20];
int ID;}kw[]= { "void", 1, "char", 2, "int", 3, "float", 4, "double", 5};

则 printf("%c,%d\n",kw[3].Key[0],kw[3].ID);

语句的输出结果为(  )。

共 2 分 

第10题

下列运算符中优先级最高的是(  )。

共 2 分 

第11题

结构体数组有两种方式进行初始化:先定义结构体数组类型再初始化结构体数组、在定义结构体数组的同时对结构体数组初始化。(  )

共 2 分 

第12题

调用 fclose( )函数后原有的文件指针仍然可以进行文件操作。(  )

共 2 分 

第13题

操作字符串的函数 strcat()与 stmcat()用法是相同的。(  )

共 2 分 

第14题

链表和数组一样都是内存上一段连续的内存空间。(  )

共 2 分 

第15题

一维数组指的是只有一个下标的数组,用来表示一组具有相同类型的数据。(  )

共 2 分 

第16题

C语言提供了 fopen()函数,该函数用于打开文件,其返回值类型为空。(  )

共 2 分 

第17题

break语句只能在循环语句中使用。(  )

共 2 分 

第18题

十进制数 10转换为二进制为 1010。(  )

共 2 分 

第19题

不能直接使用一个字符串常量来为一个字符数组赋值。(  )

共 2 分 

第20题

在C语言中,逻辑表达式可以包含多个逻辑运算符。(  )

共 2 分 

第21题

当使用指针指向一个函数时,这个指针就称作______。

共 2 分 

第22题

与十进制数 1770.625 对应的八进制数是______。

共 2 分 

第23题

在C语言中,根据数值的取值范围不同,可以将整型定义为______、基本整型和长整型。

共 2 分 

第24题

若在 main()函数中定义,char*s ="hello";则字符串是分配在______空间上。

共 2 分 

第25题

假设函数指针p指向函数 int func(),如果要使用函数指针来调用这个函数,则可以通过这样的代码来实现:______。

共 2 分 

第26题

八进制是一种“逢八进一”的进制,十六进制是一种______的进制。

共 2 分 

第27题

程序中定义了一个指向结构体变量的指针后,可以通过"______"的方式访问结构体变量中的成员。

共 2 分 

第28题

ASCII编码是规定了把英文字母、数字、标点、______转换成计算机能识别的二进制数的规则。

共 2 分 

第29题

二进制是一种“逢二进一”的机制,它用0和_____两个符号来描述。

共 2 分 

第30题

_____指令用来取消宏定义。

共 2 分 

第31题

请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:根据对x的输入,求1到x的累加和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int fun(int n)
{
  int i,c;
  c=0;
  for(i=1;i<=n;i++)
      c=c+i;
      ___①___
}
void main()
{
  int x;
  scanf("%d",___②___);
  printf("%d\n",fun(x)); 
}
共 8 分 

第32题

定义一个结构体,其中包括:职工号、职工名、年龄、工资、地址。按结构体类型定义一个结构体数组.从键盘输入每个结构体元素所需的数据.然后逐个输出这些元素(可设数组只有三个元素)。


参考答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
 
/*
样例
1 John 25 2500.20 MainStreet
2 Jane 30 3500.50 HighStreet
3 Jim 40 4500.75 ParkAvenue
*/
 
// 定义一个结构体,包括职工号、职工姓名、年龄、工资、地址
struct Employee {
    int empNo;
    char name[20];
    int age;
    float salary;
    char address[100];
};
int main() {
    // 声明结构体数组
    struct Employee employees[3];
    // 循环输入员工信息
    int i;
    for(i = 0; i < 3; i++) {
        scanf("%d %s %d %f %s", &employees[i].empNo,
              employees[i].name, &employees[i].age, &employees[i].salary,
              employees[i].address);
    }
 
    // 输出员工信息
    printf("\n职工信息如下:\n");
    for(i = 0; i < 3; i++) {
        printf("职工号:%d\n", employees[i].empNo);
        printf("职工姓名:%s\n",employees[i].name);
        printf("年龄:%d\n", employees[i].age);
        printf("工资:%.2f\n", employees[i].salary);
        printf("地址:%s\n", employees[i].address);
        printf("\n");
    }
    return 0;
}
共 0 分 

第33题

编写程序,键盘输入一个不多于 4位数,求出它是几位数:

提示:

1)定义一个数 num,用 num/10 逐渐削减其倍数.直到为 num/10为0;

2) 可以用 while 循环。


参考答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
/*
样例
1234
*/
int main()
int n,z=0;
scanf("%d",&n);
while(n!=0)
  {
   n/=10;
   z++;
  }
 printf("%d",z);
char s[17];
scanf("%s",s);
char *k = s;
while(*k!='\0')k++;
printf("%d",k-s); 
return 0;
}
共 0 分 

第34题

请阅读下面的程序,分析程序是否能编绎通过并正确运行,如果不能,说明原因;如果能,请写出运行结果。

1
2
3
4
5
6
7
8
9
void main()
{
int a=2,b=7;
#ifdef SUM
printf("sum = %d\n",a+b);
#else
printf("a = %d,b=%d\n,a,b);
#endif
}
共 16 分 

第35题

请阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
void main()
{
int x=1, a=0, b=0;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++; b++;
}
printf("a=%d,b=%d\n",a,b);
}
共 16 分 

试卷信息

题量: 35 道
总分: 100 分
一、选择题(1- 10题,共计20分)
二、判断题(11-20题,共计20分)
三、填空题(21-30题,共计20分)
四、程序题(31-35题,共计40分)