天津农学院历年C语言程序设计期末
本试卷为天津农学院历年C语言程序设计期末,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计期末
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、有以下结构体说明和变量的定义,且指针p指向变量a’指针q指向变量b,则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node*next;
}
a,b,*p=&a,*q=&b;
( B )
2、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j;
( B )
3、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( B )
4、有如下程序段 int *p, a=10, b=1; p=&a ; a=*p+b; 执行该程序段后, a 的值为 。
( C )
5、以下程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int a[ ]={5,4,3,2,1},i,j;
long s=0;
for(i=0;i<5;i++) s=s*10+a[i];
printf("s=%ld\n",s);
}
( B )
6、若有条件表达式(exp)a++:b--,则以下表达式中能完全等价于表达式(exp)的是________。
( D )
7、下列选项中属于c语言构造类型的是________。
( C )
8、关于数组的叙述中,下列说法不正确的是________。
( C )
9、若a的值为3时,下列程序段被执行后,c的值是________。 int c = 1; if (a>0) if (a>3) c = 2; else c = 3; else c = 4;
( A )
10、下列运算符中,不属于关系运算符的是______。
( B )
11、若有以下说明和定义 fun(int*c)
{
...
}
main()
{
int(*a)()=fun,(*b)(),w[10],c;
}
在必要的赋值之后,对fun()函数的正确调用语句是______。
( D )
12、下述程序的输出结果是________。
#include<stdio.h>
void main()
{
int a[5]={1,2,3,4,5};
int*p=a,**q=&p;
printf("%d",*(p++));
printf("%d",**q);
}
( A )
13、有以下程序:
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10,p++)printf("%d,",*p);
}
程序运行后的输出结果是________。
( B )
14、以下程序的功能是计算s=1+12+123+1234+12345。
#include <stdio.h>
main()
{
int t=0,s=0,i;
for(i=1;i<=5;i++) {
t=i+_____;
s=s+t;
}
printf("s=%d\n",s);
}
则______部分是________。
( B )
15、以下合法的赋值语句是______。
( B )
16、下面选项中合法的字符常量是________。
( A )
17、下列数组说明中,正确的是________。
( C )
18、下列定义不正确的是________。
( D )
19、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);
为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当 是________。(注:┗┛表示空格)
( A )
20、下述程序的运行结果是________。
#include<stdio.h>
void fun(int x)
{
putchar('0'+(x% 10));
fun(x/10);
}
main( )
{
printf(''\n'');
fun(1234);
}
二、填空题 (共10题,每题2分,共计20分)
1、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 ________ ( double,double);
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{
return(a>b ? a:b);
}
2、字符读写函数____________是用于从磁盘文件中读出一个字符。
3、若有语句double x=17; int y; ,当执行y=(int)(x/5)%2;之后y的值是 ________。
4、int a = 0; a+=(a=8); 求a的最后结果
5、sacii中小写字母-(____)=大写字母
6、已知a=5,则表达式"a+=a-=3"的值是________。
7、main()
{
int a,b;
for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
程序的输出结果a的值为________。
8、int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++) y + = * (p + x);
printf("%d\n",y);
程序的输出结果y的值是________ 。
9、请补充main()函数,该函数的功能是:从键盘输入一个字符串及一个指定字符,然后把这个字符及其后面的所有字符全部删除。结果仍然保存在原串中。 例如,输入"abcdefg",指定字符为"d",则输出"abe"。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 80
void main()
{
int i=0;
char str[M];
char ch;
system("CLS");
printf("\n Input a strin9:\n");
gets(str);
printf("\n Input a charator;\n");
scanf("%c",&ch);
while(str[i]!='\0')
{
if(str[i]==ch) ________ ________ ;
}
str[i]= ________ ;
printf("\n***display string***\n");
puts(str);
}
10、结构化设计中的三种基本结构是 顺序,选择,_____。
三、编程题 (共3题,每题0分,共计40分)
1、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序:
char*proc(char(*a)[81],int num)
{
}
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ssei]);
puts(ss[i]);
}
n=i;
max=proe(ss,n);
printf("\nmax=%s\n",max);
}
2、编写程序:编写input()和output()函数输入,输出5个学生的数据记录。
3、输出2000——2500年每一年是否闰年
相关标签:
- C语言
- 天津农学院
- 期末