河南工业大学往年C语言程序设计期末
本试卷为河南工业大学往年C语言程序设计期末,题目包括:填空题。
本卷包括如下题型:
C语言程序设计期末
一、填空题 (共40题,每题2.5分,共计100分)
1、在c语言中,正确的标识符是由 ________ 组成的,且由 ________ 开头的。
2、表达式 2.8 + 3/4 =________。
3、有定义int a=-1;则pirntf("%d,%o",a,a")的输出结果是________。
4、有以下程序
#include <stdio.h>
#include <string.h>
void fun(char*str)
{
char temp;
int n,i;
n=strlen(str);
temp=str[n-1];
for(i=n-1;i>0;i--) str[i]=str[i-1];
str[0]=temp;
}
main()
{
char s[50];
scanf("%s",s);
fun(s);
printf("%s\n",s);
}
程序运行后输入:abcdef<回车>,则输出结果是________。
5、现有两个c程序文件t18.c和myfun.c同在tc系统目录(文件夹)下,其中t18.c文件如下:
#include <stdio.h>
#include "myfun.c"
main()
{
fun();
printf("\n");
}
myfun.c文件如下:
void fun()
{
char s[80],c;
int n=0;
while((c=getchar())!=′\n′) s[n++]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序t18时,输入thank!则输出结果是:________。
6、有以下语句段 int n1=10,n2=20;
printf(" ________",n1.n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20
7、在printf格式字符中,只能输出一个字符的格式字符是________ ; 用于输出字符串的格式字符是________ ; 以小数形式输出实数的格式字符是________ ; 以标准指数形式输出实数的格式字符是______。
8、ferror()用来检测文件读写时是否发生错误,若发生读写错误,则返回值是__________。
9、字符串函数________用于从指定的磁盘文件中读出一个字符串。
10、字符读写函数____________是用于从磁盘文件中读出一个字符。
11、在c语言中,假使x为基本整型变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"__"。
12、在c语言中,在调用一个函数的过程中又出现__________或间接地调用该函数本身,这一现象称为函数的递归调用。
13、执行下列程序段后,输出的a的值是_____________。
main( )
{
int m = 0;
switch(m)
{
case 0: m=2*m+1;
break;
case 1: m=m-1;
break;
case 2: m=m+5;
break
}
printf("%d",m);
}
14、语句主要是实现次数循环结构,while语句主要是实现当型循环结构。
15、c允许用一种特殊形式的字符常量,就是以字符\开头的字符序列,称为________。
16、struct student
{
int no;
char name[12];
float score[3];
};
sl,*p = &sl;
用指针法给sl的成员no赋值1234的语句是【1】->no=1234。
17、ferror函数用来检测文件读写时是否发生错误,若未发生读写错误,则返回值是________。
18、实参与形参占用独立的( )
19、局部变量的作用域是从定义的位置起,到( )结束止。
20、下列程序段的运行结果是________。
struct stt
{
long num;
char name[20];
char sex;
float score;
}
p={1021103,"jiang ping",'m',85.5};
main()
{
printf("%c\n",p.sex);
}
21、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为________。
22、以下程序运行后的输出结果是 ________
#include <stdio.h>
main()
{
int a=1,b=7;
do
{
b=b/2;
a+=b;
}
while (b>1);
printf("%d\n",a);
}
23、已知"float x=0.5;int y=13;",则算术表达式"x+y/5"的值是________。
24、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的值为________。
25、在c语言中,函数的返回值是由___________语句传递的。
26、以下程序的输出结果是_____________。
main()
{
float x;
printf("%.4f\n",(x=2*4,x+0.5));
}
27、以下程序运行结果是________。
void swap2(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
void main( )
{
int a=100,b=200;
swap2(&a,&b);
printf("%d,%d",a,b);
}
28、c语言中文件操作结束节后,必须关闭文件。而且关闭文件是通过调用________函数来实现。
29、一个c语言源程序由若干函数组成,其中至少应含有一个 ()
30、下面程序的功能是求1111的个、十、百位上的数字之和。请分析程序填空。
#include<stdio.h>
main()
{
int i,s=1,m=0;
for(i=1;i<=11;i++) s=s*11%1000;
do
{
m+= 【1】________;
s=【2】________;
}
while(s);
printf("m=%d\n",m);
}
31、下面程序的功能是求出用数字0 至9 可以组成多少个不重复的三位偶数。请分析程序填空。
#include<stdio.h>
main()
{
int n=0,i,j,k;
for(i=1;i<=9;i++)
for(k=0;k<=8; 【1】________)
if(k!=i)for(j=0;j<=9;j++)
if( 【2】________) n++;
printf("n=%d\n",n);
}
32、下面程序的功能是生成并打印某数列的前20 项,该数列第1,2项分别为0 和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值。生成的20 个数存在一维数组x 中,并按每行4 项的形式输出。
main()
{
int x[21],i,j;
x[0]=0;
x[2]=1;
i=3;
do
{
x[i]= 【1】________;
x[i+1]= 【2】________;
i= 【3】________;
}
while (i<=20);
for (i=1;i<=20;i++)
{
printf("%5d",x[i]);
if (i%4==0)printf("\n");
}
}
33、以下程序的运行结果是_____________。
main( )
{
int k, s ,a[3][3]={1,2,3,4,5,6,7,8,9};
s=0;
for( k=0; k<3; k++)s=s+ a[k][k];
printf("%d,",s);
}
34、请补充函数proc(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:1234567,结果输出:7654321。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填人所编写的若干表达式或语句。 试题程序:
#include <stdio.h>
unsigned long proc(char*str)
{
unsigned long t=0: int k: int i=0;
i=str|en(str);
for( ________ ;i>=0;i--)
{
k= ________ ;
t= ________ ;
}
return t;
}
void main()
{
char str[8];
system("cls");
printf("enter a string made up of'0'to '9 ' digital character:\n");
gets(str);
printf("the string,is:%s\n",str);
if(strlen(str)>8) printf("the string is too tong!");
else printf("the result:%1u\n", proc(str));
}
35、下列给定程序中函数fun()的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:l,1,2,3,5,8,13,21,… 例如,若给n输入7,则该项的斐波拉契数值为13。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构! 试题程序:
long fun(int g) (
switch(g);
{
case 0:
return 0;
case 1:case 2: return 1;
}
return(fun(g-1)+fun(g-2)); )
void main()
{
long fib;
int n;
printf("input n:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\nkn",fib);
}
36、下列给定的程序中,函数proc()的功能是:判断字符ch 是,与str所指字符串中的某个字符相同;
若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
void proc(char str,char ch)
{
while(*str &&*str!=ch) str++;
if(*str==ch)
{
str[0]=ch;
str[1]='0':
}
}
void main()
{
char str[81],ch;
system("cls");
printf("\nplease enter a string:");
gets(str);
printf("\n please enter the character to search:");
ch=getchar();
proc(str,ch);
printf("\nthe result is%s\n",str);
}
37、定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为 ______。
38、如果一个函数无返回值,定义它时函数类型应是______。
39、算术表达式 a=b+3 中, a、b 称为变量, 3 称为______量,=、+称为运算符。
40、C语言中的每条基本语句以______作为结束符,每条复合语句以}作为结束符。
相关标签:
- C语言
- 河南工业大学
- 期末