长春中医药大学往年C语言期末
本试卷为长春中医药大学往年C语言期末,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言期末
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、设有以下定义和语句: char str[20]一"program",*p; p=str: 则以下叙述中正确的是________。
( D )
2、表达式5!=3的值是________。
( D )
3、下列定义变量的语句中错误的是________。
( B )
4、下列关于数组的描述正确的是________。
( B )
5、结构化程序设计的三种基本逻辑结构是________。
( C )
6、若有循环:
int x=5,y=20;
do { y-=x; x++; }
while(++x<--y);
则循环体将被执行________。
( A )
7、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
( B )
8、假设有以下代码: string s="hello"; string t="hello"; char c[]= {'h', 'e', 'l', 'l', 'o'}; 下列选项中,返回false的语句是______。
( C )
9、下面程序段的运行结果是 char a[ ]="lanuage",*p; p=a; while(*p!='u') printf("%c",*p-32); p++;
( A )
10、设有如下说明:
typedef struct
{
int n;
char c;
double x;
}
std;
则以下选项:能正确定义结构体数组并赋初值的语句是________。
( C )
11、结构化程序由三种基本结构组成,三种基本结构组成的算法______。
( 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 )
13、有说明语句int a[4][5]; 则a[2]+3表示__。
( C )
14、下列语句输出结果是________。 long a=0xffff; int b=a; printf( "%d",b);
( B )
15、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
( B )
16、在c语言中,不允许有常量的数据类型是________。
( B )
17、以下对枚举类型名的定义中正确的是________。
( A )
18、若变量均已正确定义并赋值,以下合法的c语言赋值语句是________。
( B )
19、有语句char str1[10],str2[10]={"china"};
则能将字符串china赋给数组str1的正确语句是________。
( C )
20、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
二、填空题 (共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语言
- 长春中医药大学
- 期末