C语言程序设计期末考试模拟试卷

单项选择题

在下列各题的备选项中,请选择一个最符合题意的选项。

  1. 若有以下程序段

int r=8;
printf("%d\n",r>>1);
输出结果:是( )。
A.4
B.8
C.16
D.2

  1. 若有以下语句

typedef struct S {
int g;
char h;
} T;
以下叙述中正确的是( )。
A.可用T定义结构体变量
B.可用S定义结构体变量
C.S是struct类型的变量
D.T是struct S类型的变量

  1. 以下选项中,当x为大于1的奇数时,值为0的表达式是( )。
    A.x%2==0
    B.x/2
    C.x%2!=0
    D.x%2==1

  2. 有以下程序

include

define f(x) xxx

main()
{
int a=3,s,t;
s=f(a+1);
t=f((a+1));
printf("%d,%d\n",s,t);
}
程序运行后的输出结果是( )。
A.10,64
B.10,10
C.64,10
D.64,64

  1. char w;int x;float y;则表达式w*x+y-3.14的结果类型是()。
    A.float
    B.char
    C.int
    D.Double

  2. 若执行以下程序时从键盘上输入3和4,则输出的结果是( )。

main()
{
int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a
A.14
B.16
C.18
D.20

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

include

define SUB(X,Y) (X)*Y

main()
{
int a=3,b=4;
printf("%d\n",SUB(a++,b++));
}
A.12
B.15
C.16
D.20

  1. 指针s所指字符串的长度为( )。

char *s="\abc\\n";
A.9
B.7
C.6
D.说明不合法

  1. 对于以下的变量定义,表达式( )不符合C语言语法。

struct node {
int len;
char pk;
} x = {2, "right"},
p = &x;
A.p->pk
B.p.pk
C.
p->pk
D.*x.pk

  1. 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( )。
    A.-1
    B.0
    C.1
    D.3

填空题

请将下列试题的空白处补充完整。

  1. C语言程序总是从( )函数开始执行。

的C语言表达式( )。
3) 下列程序的输出结果为____

include

main()
{
int m=8;
if(m--
4) 若有说明int a[3][4]={{1,2}, {0}, {4,6,8,10}},则a数组的元素个数为( )。
5) 己知int a[][3]={1,2,3,4,5,6};,数组元素a[1][1]的值是( )。
6) 有以下程序,执行后输出结果是____。

include

main()
{
unsigned char a,b;
a=4|3;
b=4&3;
printf("%d%d\n",a,b);
}

程序填空题

请将下列程序中的空白处补充完整。

  1. 本程序中函数fun的功能是将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入"Ab,cD",则输出"ab,cd"。请将下述程序补充完整(注意:不改动程序的结构,不得增行或删行)。

include

include

include

char 【1】 fun(char tt[])
{
int i;
for(i=0;tt[i];i++)
{
if((tt[i]>='A')&&(tt[i]
2) 以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main( )
{ int x[10],a[9],i;
for (i=0;i

程序改错题

请按要求修改下列程序中的错误。

  1. 下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“good luck!”,则应输出“Good Luck!”。
    请修改程序中的错误,使程序能得出正确的结果。
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。

include

include

include

/ found /
void top(char s)
{
int i=0;
for(;s;s++)
if(i)
{
if(
s==' ')
i=0;
}
else
{
if(s!=' ')
{
i=1;
s=toupper(*s);
}
}
}
main()
{
char str[81];
printf("\nPlease enter an English text line: ");
gets(str);
printf("\n\nBefore changing:\n %s",str);
top(str);
printf("\nAfter changing:\n %s\n",str);
}
2) 下列给定的程序中,函数fun的功能是交换主函数中两个变量的值。例如,若变量x中的值为1,y中的值为2,则程序运行后x中的值为2,y中的值为1。
请修改程序中的错误,得出正确的结果。
注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。

include

/ found /
void fun(int a,int b)
{
int t;
/ found /
t=a;a=b;b=t;
}
main()
{
int x,y;
x=1;
y=2;
fun(&x,&y);
printf("the result is %d,%d\n",x,y);
}

程序设计题

请按照试题要求,完成规定的程序设计。

  1. 编写程序验证歌德巴赫猜想:1000-2000中的每一个偶数都可以表示成两个素数之和。如果此猜想成立,显示"all numbers are OK!;否则显示"n is not OK!",这里n是第一个使猜想不成立的偶数。

  2. 编写程序,实现如下功能:
    对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如,输入的两个字符串分别为"abcdefg"和"abceef",则输出为-1。

  3. N名学生的成绩已经在主函数中放入一个带头结点的链表结构中,head指向链表的头结点。请编写程序,它的功能是求出平均分、由函数值返回。

关键字:c

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部