内蒙古科技大学历年C语言期末题库

本试卷为内蒙古科技大学历年C语言期末题库,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

C语言期末题库

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、若有定义:"int*p,x=0,*p,p=&x;",则语句"printf("%d\n",*p);"的输出结果是________。
A、随机值
B、0
C、x的地址
D、P的地址
(  C  )
2、关于结构化程序设计原则和方法的描述错误的是________。
A、选用的结构只准许有一个入口和一个出口
B、复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现
C、不允许使用GOTO语句
D、语言中若没有控制结构,应该采用前后一致的方法来模拟
(  D  )
3、c语言语句一行写不下时,可以( )。
A、用逗号换行
B、用分号换行
C、用回车换行
D、在任意一空格处换行
(  A  )
4、以下程序的输出结果是
f(int b[],int m,int n)
{
int i,s=0;
for(i=m;i<n;i=i+2) s=s+b[i];
return s;
}
main()
{
int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
A、10
B、18
C、8
D、15
(  A  )
5、以下函数调用语句中实参的个数为 。 exce((v1,v2),(v3,v4,v5),v6);
A、3
B、4
C、5
D、6
(  C  )
6、若有以下定义和语句,且 0 ≤ i<10 则对数组元素的错误引用是______。 int a[10]= { 1,2,3,4,5,6,7,8,9,10 },*p,i; p=a;
A、*(a+i)
B、a[p-a]
C、p+i
D、*(&a[i])
(  C  )
7、以下程序的输出结果是________。
#include <stdio.h>
void swap(int*a, int *b)
{
int*t;
t=a;
a=b;
b=t;
}
main()
{
int i=3, j=5, *p=&i, *q=&j;
swap(p, q);
printf(1%d %d , *p, *q);
}
A、23
B、34
C、35
D、45
(  D  )
8、以下正确的定义语句是________。
A、int A['B'];
B、int A[8,3];
C、int A[][9];
D、int A[5];
(  C  )
9、以下不合法的数值常量是________。
A、011
B、lel
C、8.0E0.5
D、0xabcd
(  C  )
10、有以下程序
main()
{
int i;
for(i=1;i<=40;i++)
{
if(i++%5==0) if(++i%8==0) pfintf("%d",i);
}
printf("\n");
}
执行后的输出结果是________。
A、5
B、24
C、32
D、40
(  C  )
11、有以下程序
#include<stdio.h>
main ()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
x++;
}
printf ("x=%d\n", x);
}
程序执行后的输出结果是______。
A、x=8
B、x=4
C、x=6
D、x=12
(  A  )
12、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
A、6
B、8
C、10
D、12
(  B  )
13、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
A、(*p).data.a
B、(*p).a
C、p->data.a
D、p.data.a
(  D  )
14、以下程序的输出结果是______。
struct har
{
int x,y;
struct har *p;
}
h[2];
main()
{
h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=&h[1];
h[1].p=h;
printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);
}
A、12
B、23
C、14
D、32
(  B  )
15、已有定义:char c; 不能用于判断c中的字符是否为大写字母的表达式是______。
A、c>='A'&&c<='Z'
B、'A'<=c<='Z'
C、'A'<=c&&c<='Z'
D、c<=('z'-32)&&('a'-32)<=c
(  D  )
16、已知字符 'a' 的ascii码为 97,执行下列语句的输出是____。
A、98, b
B、语法不合法
C、98, 99
D、98, c
(  D  )
17、函数调用结束后,形式参数( )
A、继续占用相同大小的内存
B、不确定
C、占用内存减小
D、释放内存
(  B  )
18、若有下列定义,则对a数组元素地址的正确引用是________。 int a[5],*p=a;
A、&a[5]
B、p+2
C、a++
D、&a
(  C  )
19、有定义:char **p1,*p2;
则下列表达式中正确合理的是________。
A、p1/=5
B、p1*=p2
C、p1=&p2
D、p1+=5
(  B  )
20、以下语句中,不能实现回车换行的是()。
A、printf("\n");
B、putchar("\n");
C、fprintf(stdout,"\n");
D、fwrite("\n",1,1,stdout);

二、填空题 (共10题,每题2分,共计20分)

1、c语言约定用____________作为字符串的结束标志。
2、在c语言中,用转义字符 \' 表示______________。答题提示:双引号/单引号/反斜线/横向跳格/回车换行
3、在c语言中,标识符是由英文字母、数字、________组成的。
4、若有定义:int a=3; 表达式a/2.0+'b'-'a'的值是【1】。
5、局部变量的作用域是从定义的位置起,到( )结束止。
6、以下程序的输出结果是________。
main()
{
int x;
printf("%d\n",(x=2*4,x+5));
}
7、下列程序段的运行结果是________。
main()
{
int n,s=0;
for(n=1; n<=5; n++)
{
if(n%2!=0) continue;
s=s+i;
}
printf("%d\n",n);
}
8、如果一个变量要在一个程序中的所有函数都能共享,则应该定义成为________。
9、以下程序的输出结果是 ________。
#include<stdio.h>
main()
{
int a[5]={2,4,6,8,10}, *p;
p=a;
p++;
printf("%d",*p);
}
10、break语句通常用于______中。

三、编程题 (共3题,每题0分,共计40分)

1、编写程序: 输出9*9口诀。
2、有一包含职工编号、年龄和性别的单向链表,分别使用函数完成以下功能
建立链表。
分别统计男女职工的人数。
在链表尾部插入新职工。
删除指定编号的职工。
删除60岁以上的男职工和55岁以上的女职工被删除的结点保存到另一个链表
中。在主函数中设计简单的菜单去调用上述函数。
3、给定一个只包括 '(',')','{','}' 字符的10位长度的字符串s,编写一个函数判断字符串是否顺序闭合。例如:'()[]()[]()[]()[]()[]'为true, '(](](](](]'为false
相关标签:
  • C语言
  • 内蒙古科技大学
  • 期末题库