辽宁科技大学C语言专升本

本试卷为辽宁科技大学C语言专升本,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言专升本

一、填空题 (共40题,每题2.5分,共计100分)

1、下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 int n=0, ch;
ch=getchar( );
while( ________ )
{
if ( ________ ) n++;
c=getchar( );
}
2、int *p 的含义是 ________ 。
3、定义4行3列的整型二维数组a的语句是________。
4、在c语言中,格式输入库函数为________,格式输出库函数为________。
5、仅由顺序、选择(分支)和重复(循环)结构构成的程序是________程序。
6、以下函数sstrcat( )的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。
void sstrcat(char *s, char *t)
{
int n;
n= strlen(s);
while (*(s+n)= ________ )
{
s++;
t++;
}
}
7、现有两个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!则输出结果是:________。
8、有一下程序
#include <stdio.h>
main()
{
int f,f1,f2,i;
f1=0;
f2=1;
printf("%d %d ",f1,f2);
for(i=3;i<=5;i++)
{
f=f1+f2;
printf("%d",f);
f1=f2;
f2=f;
}
printf("\n");
}
程序运行后的输出结果是 ________。
9、若i为整型变量,且i%2==0的值为1,则变量i为________数。
10、结构化程序设计的3种基本结构是:顺序结构、选择结构、______结构,这三种基本结构构成了复杂的c语言程序。
11、下列程序段的运行结果是_____。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[5]);
12、在c语言中,实参和形参之间的数据传递是【1】向的值传递。
13、有函数调用fun1(x+y, (y,z), 10, fun((x,y-1)));
函数fun1有【1】个参数。
14、if语句与_________语句一起可以构成循环结构。
15、在c语言中,如果采用printf函数将整个字符串一次输出,那么对应的格式控制符为"( )"。
16、已知"float a=3.5;int b=12;",则算术表达式"(int)(a+b/5)"的值是________。
17、语句putchar('a'+2);的输出结果是________。
18、若int a=3,b=2,c=1,f;表达式f=a>b>c 的值是________。
19、局部变量又称内部变量,是在函数( )定义的变量。
20、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%daa%d",++x,y――);
}
21、下列程序段的运行结果是________。
#define add(x , y) x+y
main()
{
int a , b , s;
A=5, b=6;
S=add(a,b);
printf("s=%d\n" , s);
}
22、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的值为________。
23、for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
程序的输出结果a的值为________ 。
24、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的值是________ 。
25、字符读写函数( )是用于把一个字符写入磁盘文件。
26、在c语言中,可以用/*…*/对c程序中的任何部分作______。
27、"空"指针值用______表示
28、下列程序段的运行结果是_____。
struct st
{
longnum;
charname[20];
charsex;
floatscore;
}
w={1021103,"jiangping",'m',85.5};
main()
{
printf("%s\n",w.name);
}
29、c语言的源程序拓展名为()编译后生成() 链接后生成()
30、在一个c 源程序中, 注释部分两侧的分界符分别为___和____。
31、下面程序的功能是计算1-3+5-7+...-99+101 的值,请分析程序填空。
#include<stdio.h>
main()
{
int i,t=1,s=0;
for(i=1;i<=101;i+=2)
{
【1】________;
s=s+t;
【2】________;
}
printf("%d\n",s);
}
32、函数del 的作用是删除有序数组a 中的指定元素x。已有调用语句n=del(a,n,x);
其中实参n 为删除数组元素的个数,赋值号左边的n 为删除后数组元素的个数。请填空。del(int a[],int n,int x)
{
int p,i;
p=0;
while (x>=a[p]&&p<n)【1】________;
for(i=p-1;i<n;i++)【2】________;
n=n-1;
return n;
}
33、以下程序的运行结果是________。
int i=0;
main()
{
int i=5;
reset(i/2);
printf("i=%d\n",i);
reset(i=i/2);
printf("i=%d\n",i);
reset(i/2);
printf("i=%d\n",i);
workover(i);
printf("i=%d\n",i);
}
workover(int i)
{
i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
return i;
}
reset(int i)
{
i=i<=2?5:0;
return i;
}
34、以下程序运行后的输出结果是 ________
#include <stdio.h>
main()
{
int x=20;
printf("%d ",0<x<20);
printf("%d\n",0<x&&x<20);
}
35、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int x, y = -2, z = 0;
if ((z = y) < 0) x = 4;
else if (y == 0) x = 5;
else x = 6;
printf("\t%d\t%d\n", x, z);
if (z = (y == 0)) x = 5;
x = 4;
printf("\t%d\t%d\n", x, z);
if (x = z = y) x = 4;
printf("\t%d\t%d\n", x, z);
}
36、请补充函数proc(),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,str指向原字符串,删除后的字符串存放在b所指的数组中,c中存放指定的字符。例如,当str输入"abcabcabcab",c=b时,b的输出为"abcabcaca";
如果str的输入为"abcabcabca",则b的输出为"abcabcabca"。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅程函数proc()的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 80
void proc(char str[],char b[],char c)
{
int i=0,j=0;
int n=0; int m=0;
while(str[i]!='\0')
{
if(str[i]==c) n++; i++:
}
________ ;
if(n%2)
{
while(str[j]!='\0 ')
{
b[j]=str[j];
j++;
}
b[j]='\0';
}
else
{
while(str[i]!='\0 ')
{
b[j++]=str[i];
if(str[i]==c) m++;
if((m>n/2)&&(str[i]==c)) ________ ;
i++:
}
________ ;
}
}
void main()
{
char str[M],b[M];
char c;
system("cls");
printf("Enter the strin9:\n");
gets(str);
printf("Enter the character of the string deleted:");
scanf("%c",&c);
proc(str,b,c);
printf("The new string is:%s\n",b);
}
37、请补充main()函数,亥函数的功能是求方程ax2+bx+ e=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b*b-4*a*c)小于0,则要求重新输入a、b、c的值。 例如,当a=1,b=2,c=1时,方程的两个根分别是:x1 =-1.00,x2=-1.00。 注意:部分源程序给出如下。 请勿改动函数中的其他任何内容,仅在横线上填入所编写的若干表达式或语旬。 试题程序:
void main()
{
double a,b,c,x1,x2,disc;
do
{
printf("input a,b,c:");
scanf("%1f,%1f,%1f",&a,&b,&c);
disc=b*b一4*a*c;
if(disc<0)
printf("disc=%1f\n input again!\n",disc);
}
while( ________);
printf("****The result****\n");
x1=(-b+ ________ (disc))/(2*a);
x2=(-b- ________(disc))/(2*a);
printf("\nx1=%6.21f\nx2=%6.21f\n",x1,x2);
}
38、C语言函数是由函数首部和函数体两部分组成。其中,函数首部包括 函数类型、函数名和______。
39、如果一个函数无返回值,定义它时函数类型应是______。
40、在C语言中,表示静态存储类别的关键字______。