长春中医药大学往年C语言期末

本试卷为长春中医药大学往年C语言期末,题目包括:单项选择题,填空题,编程题。

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

C语言期末

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

(  A  )
1、设有以下定义和语句: char str[20]一"program",*p; p=str: 则以下叙述中正确的是________。
A、*P与str[0]的值相等
B、str与P的类型完全相同
C、str数组长度和P所指向的字符串长度相等
D、数组str中存放的内容和指针变量P中存放的内容相同
(  D  )
2、表达式5!=3的值是________。
A、T
B、非零值
C、0
D、1
(  D  )
3、下列定义变量的语句中错误的是________。
A、int_int;
B、double int_;
C、char For;
D、float US$;
(  B  )
4、下列关于数组的描述正确的是________。
A、数组的长度是固定的,而其中元素的数据类型可以有不同
B、数组的长度是固定的,而其中元素的数据类型必须相同
C、数组的长度是可变的,而其中元素的数据类型可以有不同
D、数组的长度是可变的,而其中元素的数据类型必须相同
(  B  )
5、结构化程序设计的三种基本逻辑结构是________。
A、选择结构,循环结构和嵌套结构
B、顺序结构,选择结构和循环结构
C、选择结构,循环结构和模块结构
D、循环结构,递归结构和循环结构
(  C  )
6、若有循环:
int x=5,y=20;
do { y-=x; x++; }
while(++x<--y);
则循环体将被执行________。
A、0次
B、1次
C、2次
D、3次
(  A  )
7、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
A、1
B、3
C、2
D、4
(  B  )
8、假设有以下代码: string s="hello"; string t="hello"; char c[]= {'h', 'e', 'l', 'l', 'o'}; 下列选项中,返回false的语句是______。
A、s.equals(t);
B、t.equals(c);
C、s==t;
D、t.equals (new String("hello"));
(  C  )
9、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
A、LANGUAGE
B、language
C、LAN
D、langUAGE
(  A  )
10、设有如下说明:
typedef struct
{
int n;
char c;
double x;
}
std;
则以下选项:能正确定义结构体数组并赋初值的语句是________。
A、STDtt[2]={{1,'A',62},{2,'B',75}};
B、STDtt[2]={1,"A",62,2,"B",75};
C、struet tt[2]={{1,'A'},{2,'B'}};
D、struct tt[2]={{1,"A",62.5},{2,"B",75.0}};
(  C  )
11、结构化程序由三种基本结构组成,三种基本结构组成的算法______。
A、可以完成任何复杂的任务
B、只能完成部分复杂的任务
C、只能完成符合结构化的任务
D、只能完成一些简单的任务
(  B  )
12、有以下程序
void f(int *q)
{
int i=0;
for( ;i<5;i++) (*q)++;
}
main()
{
int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A、2,2,3,4,5,
B、6,2,3,4,5,
C、1,2,3,4,5,
D、2,3,4,5,6,
(  A  )
13、有说明语句int a[4][5]; 则a[2]+3表示__。
A、a数组行下标为2、列下标为3的元素的地址
B、a数组行下标为2、列下标为3的元素的值
C、a数组第2行的首地址
D、a数组第3行的首地址
(  C  )
14、下列语句输出结果是________。
long a=0xffff;
int b=a;
printf( "%d",b);
A、65535
B、65536
C、-1
D、1
(  B  )
15、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
A、st1 = st2
B、p->name = st2.name
C、p->num = st2.num
D、*p=st2
(  B  )
16、在c语言中,不允许有常量的数据类型是________。
A、整型
B、结构型
C、字符型
D、字符串
(  B  )
17、以下对枚举类型名的定义中正确的是________。
A、enum a={sum,mon,tue};
B、enum a {sum=9,mon=-1,tue};
C、enum a={"sum","mon","tue"};
D、enum a {"sum","mon","tue"};
(  A  )
18、若变量均已正确定义并赋值,以下合法的c语言赋值语句是________。
A、x=n/2.5;
B、x==5;
C、x+n=I;
D、5=x=4+1;
(  B  )
19、有语句char str1[10],str2[10]={"china"};
则能将字符串china赋给数组str1的正确语句是________。
A、str1={"china"};
B、strcpy(str1,str2);
C、str1=str2;
D、strcpy(str2,str1);
(  C  )
20、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
A、+-+-+- $
B、-+-+-+ $
C、+-+- $
D、-+-+ $

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

1、c语言程序的三种基本结构是顺序结构、选择结构和________。
2、表达式7+10>2 && 25 %5的结果是 ________ 。
3、在c语言中,以________开头的常量代表的是十六进制数。
4、c允许用一种特殊形式的字符常量,就是以字符\开头的字符序列,称为________。
5、一个3位的二进制数能表示几个数?
6、写出下列程序的运行结果。
#include "stdio.h"
main()
{
int a[]={1,2,3,-4,5};
int m,n,*p;
p=&a[0];
m=*(p+1);
n=*(p+4);
printf("%d %d %d ",*p,m,n);
}
7、下面程序的运行结果是________。
main()
{
int i=1,n=3,j,k=3, a[5]={1,4,5};
while(i<=n&&k>a[i]) i++;
for(j=n-1;j>=i;j--)a[j+1]=a[j];
a[i]=k;
for(i=0;i<=n;i++)printf("%3d",a[i]);
}
8、函数swap(arr,n) 可完成对arr 数组从第一个元素到第n 个元素两两交换。在运行调用函数中的如下语句后, a[0]和a[1]的值分别为【1】________,原因是【2】________。a[0]=1,a[1]=2;
swap(a,2);
9、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
int funa(int a)
{
int b=0;
static int c=3;
a=c++,b++;
return(a);
}
main()
{
int a=2,i,k;
for(i=0;i<2;i++)k=funa(a++);
printf("%d\n",k);
}
10、已知函数定义为:int stat(int a,float *p),则此函数的两个参数类型分别是______、 浮点型。

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

1、编写程序:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。
2、编写程序:创建一个长度为n的链表,然后反向输出该链表。
3、编写程序:查找n在数组a中最后一次出现的位置
例如:如果a数组中的元素为:[0,5,0,5,6,8,0,4,3,0],当n=5时,程序的输出结果为:5 is no.3 当n=10时,程序的输出结果应为:10 not found
相关标签:
  • C语言
  • 长春中医药大学
  • 期末