延安大学C语言试题
本试卷为延安大学C语言试题,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言试题
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
( C )
2、各种基本数据类型的存贮空间正确的长度排列为________。
( C )
3、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f的数据类型是________。
( B )
4、下面程序的输出结果是 ____________.
#include<stdio.h>
void main( )
{
int n=4;
while (n--) printf("%d ",n--);
}
( B )
5、c语言的跳转语句中,对于break和continue说法正确的是________。
( D )
6、以下函数返回a所指数组中最小的值所在的下标值:
fun(int *a,int n)
{
int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]<a[p]) ______,
return(p);
}
在横线处应填入的是______。
( D )
7、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
( A )
8、有一个数是123,它与十六进制数53相等,那么该数值是________。
( B )
9、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是________。
struct node
{
char data;
struct node *next;
}
a,b,*p=&a,*q=&b;
( A )
10、有以下程序
#include<stdio.h>
void fun(int n,int*s) {
int f;
if(n==1)*s=n+1;
else fun(n-1,&f);
*s=f;
}
main() {
int x=0;
fun(4,&x);
printf("%d\n",x);
}
程序运行后的输出结果是______。
( D )
11、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
( D )
12、c语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为________。
( B )
13、下面程序
main()
{
int y=9;
for(;y>0;y--)
{
if(y%3==0)
{
printf("%d",--y);
continue;
}
}
}
的输出是______。
( A )
14、若变量已正确定义,表达式 (j=3, j++) 的值是____。
( B )
15、对于代码 char c1[8];
scanf("%s",c1);
printf("\n%s",c1);
在程序运行时,输入了"this pretty boy",则对应的运行输出显示结果是________。
( D )
16、下列程序的输出结果是
#include <stdio.h>
int myfuntion(int n);
int main()
{
int entry = 12345;
printf("%5d", myfuntion(entry));
return 0;
}
int myfuntion(int par)
{
int result;
result = 0;
do
{
result = result * 10 + par % 10;
par /= 10;
}
while (par);
return result;
}
( B )
17、下列各语句序列中,能够将变量u.s 中最大值赋值到变量t 中的是________。
( B )
18、有以下程序段:char c1,c2,c3; scanf("%c%c%c",&c1,&c2,&c3); 若要给 c1、c2、c3 分别输入字母 a bc,则以下对输入形式的描述正确的是________。
( A )
19、以下叙述中正确的是________。
( B )
20、c语言中,定义结构体的保留字是________。
二、填空题 (共10题,每题2分,共计20分)
1、设p=30,那么执行q=(++p)后,表达式的结果q为 ________ ,变量p的结果为 ________ 。 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 ________ 。
2、有以下程序
#include < stdio.h >
main()
{
int m,n;
scanf("%d%d",&m,&n);
while (m!=n)
{
while(m>n) m=m-n;
while(m<n)n=n-m;
}
printf("%d\n",m);
}
程序运行后,当输入14 63<回车>时,输出结果是________。
3、下面程序的运行结果是: ________
int f( int a[], int n)
{
if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main ( )
{
int aa[3]={1,2,3},s;
s=f(&aa[0],3);
printf("%d\n",s);
}
4、有函数调用fun1(x+y, (y,z), 10, fun((x,y-1))); 函数fun1有【1】个参数。
5、ferror函数用来检测文件读写时是否发生错误,若未发生读写错误,则返回值是________。
6、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%da%d",x――,――y);
}
7、结构化程序三种结构为________。
8、以下程序实现输出x,y,z 三个数中的最大者。请分析程序填空。
main()
{
int x=4,y=6,z=7;
int 【1】________;
if(【2】________) u=x;
else u=y;
if ( 【3】________) v=u;
else v=z;
printf("v=%d",v);
}
9、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
10、若有定义: int a[3][4]={{1,2},{0},{4,6,8,10}};
则初始化后,a[1][2] 得到的初值是【1】, a[2][1] 得到的初值是【2】。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
2、给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 输入格式: 输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。 输出格式: 按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。 输入样例: 3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出样例: zhao 565.00 qian 430.00 zhou 630.00
3、打印出如下图案(菱形)
相关标签:
- C语言
- 延安大学
- 试题