长春中医药大学历年计算机C语言期末精选样卷
本试卷为长春中医药大学历年计算机C语言期末精选样卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言期末精选样卷
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、已知字母a的ascⅱ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是________。
( D )
2、设变量已正确定义,则以下能正确计算f=n!的程序是________。
( A )
3、运算符________的优先级最高。
( B )
4、以下叙述中错误的是________。
( D )
5、在c语言的变量类型说明中,int,char,float等类型的长度是________。
( A )
6、在 c 语言中 , 全局变量的存储类别是 ___________.
( C )
7、以下选项中合法的实型常数是________。
( D )
8、三元条件运算符ex1ex2:ex3,相当于下面的( )语句。
( C )
9、设int i=2,j=1,k=3,则表达式i&&(i+j)&k|i+j的值是________。
( A )
10、若有说明语句:char c=‘\72’; 则变量c________。
( A )
11、已知大写字母a的ascii码值是65,小写字母a的ascii码是97,则用八进制表示的字符常量''\101''是________。
( C )
12、运行以下程序后,如果从键盘上输入china
( B )
13、要表达出关系x ≥ y ≥ z,应使用表达式( )
( C )
14、使下列程序段输出"123,456,78",键盘输入数据,正确的输入是________ 。 int i,j,k scanf("%d,%3d%d",&i,&j,&k);
printf("%d,%d,%d\n",i,j,k);
( D )
15、下面( )表达式的值为4。
( D )
16、关于指针概念说法不正确的是________。
( B )
17、为了避免在嵌套的条件语句if-else 中产生二义性,c 语言规定: else子句总是与配对________。
( D )
18、在c 语言中,能表示无符号长整型常数的是________。
( A )
19、以下叙述中错误的是
( D )
20、在定义构造数据类型时,不能()。
二、控制结构 (共10题,每题1分,共计10分)
( C )
1、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( C )
2、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( C )
3、switch语句中表达式(expression)的值不允许用的类型是________。
( D )
4、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( C )
5、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=1,b=3;
if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b);
else printf("%d,%d\n",b,a);
}
( C )
6、c语言中下面哪个不是条件语句?
( D )
7、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
( B )
8、c语言的switch语句中case后____
( D )
9、选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达 式,但其值只能被判断为“真”或“假”。哪个数作为逻辑“假”值()。
( C )
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、下面for语句的循环次数为( )。 for(x=1,y=0;(y!=19)&&(x<6);x++);
( D )
2、若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是________。
( B )
3、结构化程序所要求的基本结构不包括( )。
( D )
4、下面程序段的运行结果是 _____________.
for(i=1;i<=5;)
printf("%d",i);
i++;
( A )
5、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
( B )
6、有下列程序:
main()
{
int i,j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是________。
( B )
7、下列说法中正确的是________。
( C )
8、以下程序的输出结果是 _______ 。
main( )
{
int i=0,s=0;
for (;;)
{
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
( C )
9、判断关键字* ▁▁▁▁▁ 不是关键字。
( C )
10、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、若有定义:int c[4][5],(*cp)[5]; 和语句cp=c; ,则能正确引用c数组元素的是________。
( C )
2、对两个数组a和b进行下列初始化: char m[]="1234567"; char n[]={'1','2’,'3','4','5','6','7'};则下列叙述正确的是________。
( A )
3、如果用数组名作为实参,则传递给形参的是________。
( C )
4、下面程序的运行结果是
#include<stdio.h>
main()
{
int a=28,b;
char s[10],*p;
p=s;
do
{
b=a%16;
if(b<10) *p=b+48;
else *p=b+55;
p++;
a=a/5;
}
while(a>0);
*p='\0';
puts(s);
}
( C )
5、有以下程序
#include <string.h>
void f(char p[][10],int n) /* 字符串从小到大排序 */
{
char t[10];
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j])>0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
main()
{
char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是______。
( B )
6、已知:int a[2][3]; 则对数组元素的非法引用是________。
( A )
7、对于定好的数组,系统会自动为该数组分配内存空间,char c[20]= { "hello world" }对于c对应的内存中的地址编号是2000,则c[4]对应的内存地址的编号为________。
( D )
8、若有说明 int a[][4]={0,0};
则下面不正确的叙述是________。
( C )
9、若有定义: int (*p)[4]; 则标识符p 。
( D )
10、static char str[10]="China";数组元素个数为()。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、char *s="\t\\name\\address\n"; 指针 s 所指字符串的长度为: 。
( C )
2、下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是________。
#include<stdio.h>
main()
{
char sl[]="chinese",s2[]="japnese";
int i;
for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]=s2[i]&&i<7) ____________________;
}
( C )
3、以下能将字符串,you are luck!正确读入的语句组是________。
( B )
4、下列变量定义中,错误的是______。
( C )
5、下面正确的字符串常量是________。
( B )
6、下面选项中合法的字符常量是________。
( A )
7、以下选项中关于 c 语言常量的叙述错误的是________。
( C )
8、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( A )
9、下面不能正确进行字符串赋值操作的语句是________。
( A )
10、设有以下语句, 若 0
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、以下叙述正确的是 。
( B )
2、以下叙述中正确的是______。
( D )
3、在下面的函数声明中,存在着语法错误的是________。
( A )
4、在c语言中,main函数默认返回一个( )类型的值。
( C )
5、有如下函数定义;
void func(int a,int & b)
{
a++;
b++;
}
若执行代码段:int x=0,y=1;
func(x,y);
则变量x和y的值分别是________。
( D )
6、设int f (int); 和int g(int); 是函数f和g的原形,以下将f作为语句调用的是______ 。
( D )
7、有以下函数:fun(char *a,char *b)
{
while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{
a++;
b++;
}
return(*a-*b);
}
该函数的功能是______。
( B )
8、有以下程序:
void ss(char *s,char t)
{
while(*s)
{
if(*s==t)
*s=t-''a''+''a'';
s++;
}
}
main()
{
char strl[100]="abcddfefdbd",c=''d'';
ss(strl,c);
printf("%s\n",strl);
}
程序运行后的输出结果是________。
( D )
9、若x,y均定义成int型,z定义为double型,以下不合法的scanf函数调用语句是________。
( A )
10、下面选项中表示主函数的是?
七、指针 (共10题,每题1分,共计10分)
( B )
1、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是________。
( C )
2、没有如下定义: int(*ptr)(); 则以下叙述中正确的是________。
( B )
3、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( B )
4、设矩阵a是一个n×n对称矩阵.即a[i,j]=a[i,j],为了节省存储空间,将其下三角部分按行序为主序存放在一维数b[1...n(n+1)/2]中,对任一下三角元素aij(i≥j),在一维数组b的下标位置k的值是______。
( D )
5、下列字符串中,不可以用作c标识符的是________。
( B )
6、有以下程序
#include<string.h>
main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcat(p,r);
strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是________。
( B )
7、若定义a=3,b=4,执行printf("%d, %d",(a,b),(b,a)); 的输出结果为________。
( D )
8、关于数组的定义与初始化,下列哪一项是错误的( )
( B )
9、设变量定义为 int a[2]={1,3}
, *p=&a[0]+1;
,则*p的值是________。
( C )
10、关于return语句,下列正确的说法是________。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node*next;
}
a,b,*p=&a,*q=&b;
( C )
2、有以下程序
struct stu
{
char name[10];
int num;
int score;
}
;
main( )
{
struct stu s[5]={{"yangsan",20041,703} , {"lisiguo",20042,580 , {"wangyin",20043,680}, {"sundan",20044,550}, {"penghua",20045,537}},*p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->score>p[j]->score)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
printf("5d %d\n",s[1].score,p[1]->score);
}
执行后输出结果是________。
( B )
3、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( B )
4、下列程序的输出结果是________。
#include <stdio.h>
struct abc
{
int a, b, c, s;
} ;
main ()
{
struct abc s[2] = { {1, 2, 3}, {4, 5, 6} };
int t;
t = s[0].a + s[1].b;
printf ("%d\n", t);
}
( C )
5、以下程序的输出结果是
#include<stdio.h>
struct st
{
int x;
int *y;
}
*p;
int dt[4]= {10,20,30,40 };
struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main()
{
p=aa;
printf("%d\n",++(p->x));
}
( A )
6、设有如下说明:
typedef struct
{
int n;
char c;
double x;
}
std;
则以下选项:能正确定义结构体数组并赋初值的语句是________。
( D )
7、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( A )
8、设有结构体的定义如下:
struct data
{
char c1;
char c2;
}
;
则sizeof(struct data)的值是________。
( D )
9、下面定义结构变量的语句中错误的是________。
( B )
10、相同结构体类型的变量之间,可以________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、有以下程序:
#define S(x) (x)*x*2
int main()
{
int k=5, j=2;
printf("%d",S(k+j));
printf("%d\n",S(k-j));
}
程序运行后的输出结果是________。
( A )
2、有以下程序:
double f(double x);
main()
{
double a=0;
int i;
for(i=0;i<30;i+=10)a+=f((double)i);
printf("%5.0f\n",a);
}
double f(double x)
{
return x*x+1;
}
程序运行后的输出结果是________。
( A )
3、分析以下程序的输出结果是________。
main()
{
int a=5,b=-1,c;
c=adds(a,b);
printf("%d",c);
c=adds(a,b);
printf("%d\n",c);
}
int adds(int x,int y)
{
static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);
}
( B )
4、有以下程序:
main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;
p=q;
q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是________。
( A )
5、有以下程序
#include <stdio.h>
#include <string.h>
void fun(char *s[ ],int n)
{
char *t;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j]))
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
main()
{
char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);
printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是________。
( D )
6、下述程序段的执行结果是________。
#include <stdio.h>
void main() {
int x;
for(x=1;x<=100;x++) if(++x%3==0) if(++x%4==0) if(++x%7==0) printf("%d",x);
}
( D )
7、下面程序
main()
{
int x=32;
printf("%d\n",x=x<<1);
}
的输出是______。
( C )
8、有以下的代码 int a[4]= {1,2,3,4 }; int *p=a; p++; ++p; printf("%d",*p); 的输出结果是________。
( D )
9、"现有程序:main()
{
int *ptr,*p[5],i;
if((ptr=malloc(100*sizeof(int)))!=null)
{
p[0]=ptr;
for(i=1;i<5;i++) p[i]=p[i-1]+7;
for(i=0;i<100;i++) *ptr++=i;
for(i=0;i<5;i++) printf(""%3d"",*p[i]);
}
}
其输出结果是________。"
( C )
10、下面程序的输出结果是________。
main()
{
char *p1="abc",*p2="abc",str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);
}
相关标签:
- C语言
- 长春中医药大学
- 期末精选样卷