主题:高手帮做几个题! 只要答案 不要分析!
安徽工业大学2003年专升本真题
填空
1、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__________.
int b,c; float a;
scanf("%f,%d%d",&a,&b,&c);
2、下列程序的输出结果是____________.
main()
{
char b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s\n",b);
}
3、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______.
c=(a-=(b-5));
c=(a%11)+(b=3);
4、以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
void func(int x,int y,_____ z)
{ *z=x+y; }
5、下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。
#include<stdio.h>
main()
{
int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{
a+=i;
_____
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
6、下列程序每行输出3个数据,请填空。
#define N 50
main()
{ int a[N],i;
for(i=0;i<N,i++) scanf(“%d”, );
for(i=0;i<N,i++)
{ if ( ) printf(“\n” );
printf(“%5d”,a[i] );
}
}
7、下面程序实现在字符串a中下标值为偶数的元素由小到大排序,其它元素不变,请填空。
#include<stdio.h>
main()
{ char a[]=“labchmfye” ,t;
int i,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9; )
if( )
{t=a[i];a[i]=a[j];a[j]=t;j++;}
puts(a);
}
8、要使下列程序输出5,请填空。
#include<stdio.h>
fun(char *s)
{ char *t=s;
while( ) t++;
return(t-s);
}
main()
{ char *a=“china” ;
printf(“%d” , fun(a)):
}
9、下列程序段将输出students,请填空。
char ch[]=“we are students” ;
int i,j;
for(i=0; ;i++)
{j=i+7;printf(“%c”,c[j]);}
10、下列程序段的运行结果是 。
char ch[]=“\t\v\\\0good\n” ;
printf(“%d”,strlen(ch));
11、下列程序段是输出两个字符串中对应相等的字符,请填空。
char x[]=“sfieugvsdasdfsad” ;
char y[]=“usidbhfsrygvvses” ;
int i;
while(x[i]!=’\0’ && y[i]!=’\0’)
if (x[i] = = y[i]) printf(“%c”, );
else i++;
12、能正确表示“当x的取值在[200,210]和[300,310]范围内为真,否则为假”的
表达式是 。
13、若int型变量a=21,则执行以下语句后a的值是 。
a+=a-=a+a;
二、选择
1、下列叙述正确的是:
A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义 D)C语言所有函数都是外部函数
2、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为:
A)不定值 B)4 C)3 D)1
3、当调用函数时,实参是一个数组名,则向函数传送的是:
A)数组的长度 B)数组的首地址
C)数组每一个元素的地址 D)数组每个元素中的值
4、以下只有在使用时才为该类型变量分配内存的存储类型说明是:
A)auto和static B)auto和register
C)register和static D)extern和register
5、若变量已正确定义并赋值,下面符合C语言语法的表达式是:
A)a:=b+1 B)a=b=c+2
C)int 18.5%3 D)a=a+7=c+b
6、有如下程序:
main()
{
int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是:
A)6 B)3 C)死循环 D)0
7、有如下程序:
main()
{
int i;
for(i='a';i<'i';i++,i++) printf("%c",i);
printf("\n");
}
该程序的输出结果是:
A)编译不通过,无输出 B)aceg
C)acegi D)abcdefghi
8、以下叙述正确的是:
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
9、执行下面的程序段后,变量k中的值为
A)不定值 B)33 C)30 D)10
int k=3,s[2];
s[0]=k;k=s[1]*10;
10、设有数组定义:char array[]="China";则数组array所占的空间为:
A)4个字节 B)5个字节 C)6个字节 D)7个字节
11、若x,y均定义为float型变量,则以下不合法的赋值语句是 。
A) ++x; B)y=(x%4); C) x*=y+5; D) x=y=0;
12、设有以下程序段
x=0;
while(printf(“*”))
{ x++;
if(x<10)break;
}
下面描述正确的是 。
A)其中循环控制表达式与0等价 B)其中循环控制表达式与’0’等价
B)其中循环控制表达式是不合法的 D)以上说法都不对
13、设有两个字符数组a、b,以下正确的输入语句是 。
A)gets(a,b); B)gets(“a” ),gets(“b” );
C)scanf(“%s%s”,&a,&b); D)scanf(“%s%s”,a,b);
14、下列程序段的运行结果是 。
char a[]=“university” ,*p;
p=a;
while(*p!=’e’)
{ printf(“%c” ,*p-‘a’+’A’ );p++;}
A)UNIVERSITY B)university C)UNIV D)univERSITY
15、有以下说明和语句,则对stu中sex域的正确引用方式是 。
struct student
{ char name[20];
int sex;
}stu,*p;
p=&stu;
A)(*p).sex B)p-> stu.sex C)(*p).stu.sex D)p.stu.sex
16、下列程序的运行结果是 。
#include<stdio.h>
void cal()
{extern int a, b;int x =15,y =10;
a=x-y;
b=x+y;
}
int a, b;
main()
{ int x=7 ,y=5 ;
a=x+y;
b=x-y;
cal();
printf(“%d,%d\n”,a,b);
}
A)5,25 B)12,2 C)1,12 D)不确定
17、下段程序要能对两个整型变量a、b的值进行交换,正确的说法是 。
main()
{ int a=50,b=100;
swap(&a,&b);
printf(“a=%d,b=%d\n”,a,b);
}
swap(int x,int y)
{ int t;
t=x;x=y;y=t;}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参x和y以及变量t均定义为指针即可
D)以上说法都不正确
18、设a、b、c为整型变量,a=30,b=40,c=50,则下列表达式中值为0的是 。
A) !((a<b)&& !c||1) B)a||b+c && b-c
C)a<=b D)’a’ && ‘b’
19、列程序段的输出结果是 。
int a=3;
do { printf(“%d\n”,a-=2);} while(!(--a));
A)3和0 B)死循环,没有输出 C)1和-2 D)1
20、语言中以下说法正确的是 。
A)实参和与其对应的形参共占用一个存储单元
B)形参是虚拟的,不占用存储单元
C)只有当实参和与其对应的形参同名时才共占用存储单元
D)实参和与其对应的形参各占用独立的存储单元
填空
1、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是__________.
int b,c; float a;
scanf("%f,%d%d",&a,&b,&c);
2、下列程序的输出结果是____________.
main()
{
char b[30],*chp;
strcpy(&b[0],"CH");
strcpy(&b[1],"DEF");
strcpy(&b[2],"ABC");
printf("%s\n",b);
}
3、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______.
c=(a-=(b-5));
c=(a%11)+(b=3);
4、以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
void func(int x,int y,_____ z)
{ *z=x+y; }
5、下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。
#include<stdio.h>
main()
{
int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{
a+=i;
_____
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
6、下列程序每行输出3个数据,请填空。
#define N 50
main()
{ int a[N],i;
for(i=0;i<N,i++) scanf(“%d”, );
for(i=0;i<N,i++)
{ if ( ) printf(“\n” );
printf(“%5d”,a[i] );
}
}
7、下面程序实现在字符串a中下标值为偶数的元素由小到大排序,其它元素不变,请填空。
#include<stdio.h>
main()
{ char a[]=“labchmfye” ,t;
int i,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9; )
if( )
{t=a[i];a[i]=a[j];a[j]=t;j++;}
puts(a);
}
8、要使下列程序输出5,请填空。
#include<stdio.h>
fun(char *s)
{ char *t=s;
while( ) t++;
return(t-s);
}
main()
{ char *a=“china” ;
printf(“%d” , fun(a)):
}
9、下列程序段将输出students,请填空。
char ch[]=“we are students” ;
int i,j;
for(i=0; ;i++)
{j=i+7;printf(“%c”,c[j]);}
10、下列程序段的运行结果是 。
char ch[]=“\t\v\\\0good\n” ;
printf(“%d”,strlen(ch));
11、下列程序段是输出两个字符串中对应相等的字符,请填空。
char x[]=“sfieugvsdasdfsad” ;
char y[]=“usidbhfsrygvvses” ;
int i;
while(x[i]!=’\0’ && y[i]!=’\0’)
if (x[i] = = y[i]) printf(“%c”, );
else i++;
12、能正确表示“当x的取值在[200,210]和[300,310]范围内为真,否则为假”的
表达式是 。
13、若int型变量a=21,则执行以下语句后a的值是 。
a+=a-=a+a;
二、选择
1、下列叙述正确的是:
A)C语言编译时不检查语法 B)C语言的子程序有过程和函数两种
C)C语言的函数可以嵌套定义 D)C语言所有函数都是外部函数
2、设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为:
A)不定值 B)4 C)3 D)1
3、当调用函数时,实参是一个数组名,则向函数传送的是:
A)数组的长度 B)数组的首地址
C)数组每一个元素的地址 D)数组每个元素中的值
4、以下只有在使用时才为该类型变量分配内存的存储类型说明是:
A)auto和static B)auto和register
C)register和static D)extern和register
5、若变量已正确定义并赋值,下面符合C语言语法的表达式是:
A)a:=b+1 B)a=b=c+2
C)int 18.5%3 D)a=a+7=c+b
6、有如下程序:
main()
{
int i,sum;
for(i=1;i<=3;sum++) sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是:
A)6 B)3 C)死循环 D)0
7、有如下程序:
main()
{
int i;
for(i='a';i<'i';i++,i++) printf("%c",i);
printf("\n");
}
该程序的输出结果是:
A)编译不通过,无输出 B)aceg
C)acegi D)abcdefghi
8、以下叙述正确的是:
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
9、执行下面的程序段后,变量k中的值为
A)不定值 B)33 C)30 D)10
int k=3,s[2];
s[0]=k;k=s[1]*10;
10、设有数组定义:char array[]="China";则数组array所占的空间为:
A)4个字节 B)5个字节 C)6个字节 D)7个字节
11、若x,y均定义为float型变量,则以下不合法的赋值语句是 。
A) ++x; B)y=(x%4); C) x*=y+5; D) x=y=0;
12、设有以下程序段
x=0;
while(printf(“*”))
{ x++;
if(x<10)break;
}
下面描述正确的是 。
A)其中循环控制表达式与0等价 B)其中循环控制表达式与’0’等价
B)其中循环控制表达式是不合法的 D)以上说法都不对
13、设有两个字符数组a、b,以下正确的输入语句是 。
A)gets(a,b); B)gets(“a” ),gets(“b” );
C)scanf(“%s%s”,&a,&b); D)scanf(“%s%s”,a,b);
14、下列程序段的运行结果是 。
char a[]=“university” ,*p;
p=a;
while(*p!=’e’)
{ printf(“%c” ,*p-‘a’+’A’ );p++;}
A)UNIVERSITY B)university C)UNIV D)univERSITY
15、有以下说明和语句,则对stu中sex域的正确引用方式是 。
struct student
{ char name[20];
int sex;
}stu,*p;
p=&stu;
A)(*p).sex B)p-> stu.sex C)(*p).stu.sex D)p.stu.sex
16、下列程序的运行结果是 。
#include<stdio.h>
void cal()
{extern int a, b;int x =15,y =10;
a=x-y;
b=x+y;
}
int a, b;
main()
{ int x=7 ,y=5 ;
a=x+y;
b=x-y;
cal();
printf(“%d,%d\n”,a,b);
}
A)5,25 B)12,2 C)1,12 D)不确定
17、下段程序要能对两个整型变量a、b的值进行交换,正确的说法是 。
main()
{ int a=50,b=100;
swap(&a,&b);
printf(“a=%d,b=%d\n”,a,b);
}
swap(int x,int y)
{ int t;
t=x;x=y;y=t;}
A)该程序完全正确
B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参x和y以及变量t均定义为指针即可
D)以上说法都不正确
18、设a、b、c为整型变量,a=30,b=40,c=50,则下列表达式中值为0的是 。
A) !((a<b)&& !c||1) B)a||b+c && b-c
C)a<=b D)’a’ && ‘b’
19、列程序段的输出结果是 。
int a=3;
do { printf(“%d\n”,a-=2);} while(!(--a));
A)3和0 B)死循环,没有输出 C)1和-2 D)1
20、语言中以下说法正确的是 。
A)实参和与其对应的形参共占用一个存储单元
B)形参是虚拟的,不占用存储单元
C)只有当实参和与其对应的形参同名时才共占用存储单元
D)实参和与其对应的形参各占用独立的存储单元