安徽工业大学C语言程序设计期末模拟
本试卷为安徽工业大学C语言程序设计期末模拟,题目包括:单项选择题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
本卷包括如下题型:
C语言程序设计期末模拟
一、单项选择题 (共50题,每题2分,共计100分)
( D )
1、有以下程序
void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/
{
int t,i,j;
for(i=0;i<n一1;j++) for(j=i+1;j<n;j++) if(a[i]
}
main()
{
int c[10]={1,2,3,4,5.6,7,8,9,0 },i;
fun(c+4.6): for(i=0;i<10;i++)printf("%d,",c[i]);
printf("n"):
}
}
程序运行的结果是________。
( D )
2、若已定义: int a[4][3]=(1,2,3,4,5,6,7,8,9,10,1i,12),(*prt) [3]=a,*p=a[0];则能够正确表示数组元素a[1][2]的表达式是________。
( B )
3、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( D )
4、下面是有关c语言字符数组的描述,其中错误的是________。
( D )
5、有以下定义:"int a;long b;double x,y;",则以下选项中正确的表达式是________。
( C )
6、若a为int类型,且其值为3,则执行完表达式a+= a-=a*a后,a的值是________。
( D )
7、以下叙述中不正确的是________。
( C )
8、有以下程序 int a=2;
int f(int n)
{
static int a=3;
int t=0;
if(n%2)
{
static int a=4;
t += a++;
}
else
{
static int a=5;
t += a++;
}
return t+a++;
}
main()
{
int s=a, i;
for( i=0; i<3; i++) s+=f(i);
printf("%d\n", s);
}
程序运行后的输出结果是________。
( A )
9、有以下程序
#include <studio.h>
#include <string.h>
struct a
{
int a;
char b[10];
double c;
};
void f(struct a t);
main()
{
struct a a={1001,"zhangda",1098.0};
f(a);
pringt("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
void f(struct a t)
{
t.a=1002;
strcpy(t.b,"changrong");
t.c=1202.0;
}
程序运行后的输出结果是________。
( A )
10、以下叙述中错误的是________。
( D )
11、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
( C )
12、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( A )
13、若"int n; float f=13.8; ",则执行"n=(int)f%3"后,n的值是________。
( B )
14、下面函数的功能是______。 sss ( char *s , char *t )
{
while (( *s ) && ( *t ) && ( *t++== *s++ )) ;
return ( *s-*t ) ;
}
( C )
15、设有以下说明语句 struct stu
{
int a ;
float b ;
}
stutype ;
则下面的叙述不正确的是______。
( A )
16、运行下面程序时 , 从键盘输入 "12,34,9<cr>" , 则输出结果是 ________.
#include <stdio.h>
void main( )
{
int x,y,z;
scanf("%d,%d,%d",&x,&y,&z);
if (x<y) if (y<z)printf("%d\n",z);
else printf("%d\n",y);
else if (x<z)printf("%d\n",z);
else printf("%d\n",x);
}
( D )
17、下列程序的执行结果是 ___________.
#include <stdio.h>
void main( )
{
int x=0,y=1,z=0;
if (x=z=y) x=3;
printf("%d,%d\n",x,z);
}
( D )
18、假定等级和分数有以下对应关系: 等级: a 分数: 85 ~ 100 等级: b 分数: 60 ~ 84 等级: c 分数: 60 以下 对于等级 grade 输出相应的分数区间,能够完成该功能的程序段是 __________.
( D )
19、下列一维数组初始化语句中,正确且与语句 float a[ ]={ 0,3,8,0,9}; 等价的是 __________.
( D )
20、已知 short int 类型变量占用两个字节 , 若有定义 : short int x[10]={ 0,2,4 }; 则数组 x 在内存中所占字节数是 __________.
( B )
21、以下能对二维数组a进行正确初始化的语句是________。
( A )
22、表示一条指令的存储单元的符号地址称________。
( B )
23、下列表达式为关系表达式的为_________。(其中a为一整型变量)
( B )
24、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
( C )
25、用高级程序设计语言编写的程序称为________。
( C )
26、在c语言中,关于函数fseek的说法正确的是________。
( C )
27、有以下程序
main() {
int i;
for(i=0;i<3;i++)
switch(i) {
case 0: prinft("%d",i);
case 2: prinft("%d",i);
default:prinft("%d",i);
}
}
程序运行后的输出结果是________。
( C )
28、有以下程序
main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是______。
( B )
29、下面程序的运行结果是________。
#include <stdio.h>
main() {
int a=1,b=10;
do
{
b-=a;
a++;
}
while(b--<0);
printf("a=%d,b=%d\n",a,b);
}
( C )
30、若x、y、z、m、n均为int型变量,则执行下面语句后z的值为( ) m=10; n=5; x=(--m=n++)--m:++n; y=m++; z=n;
( C )
31、有以下程序
#include<stdio.h>
main ()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
x++;
}
printf ("x=%d\n", x);
}
程序执行后的输出结果是______。
( C )
32、以下能将字符串,you are luck!正确读入的语句组是________。
( B )
33、以下关系表达式中,其值为true的是________。
( B )
34、关于字符型变量的定义,下列选项正确的是________。
( B )
35、有如下程序段int *p,a=1,b=2; p=&b; a=*p+a; 执行该程序段后,a的值为______。
( C )
36、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
( B )
37、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 ________。
( A )
38、编写c语言程序并上机调试运行的一般过程是________。
( C )
39、下列关于指针变量的描述,不正确的是________。
( D )
40、double x; scanf("%lf",&x); 不可以赋值给x变量的常量是________。
( C )
41、以下能对一维数组a进行正确初始化的语句是________。
( D )
42、fwrite函数的一般调用形式是________。
( D )
43、若二维数组a 有m 列,则计算任一元素a[i][j] 在数组中位臵的公式为(假设a[0][0] 位于数组的第一个位臵上) ________。
( B )
44、对说明语句int a[10]={6,7,8,9,10};
的正确理解是________。
( B )
45、已有定义int k=2; int *p1,*p2; 且p1,p2 均指向变量k,下面不能正确执行的赋值语句是________。
( C )
46、若用fopen() 函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是________ 。
( C )
47、int a=3,b=2,c=1; if(a>b>c)a=b; else a=c; 则a 的值为____
( C )
48、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
( D )
49、static char str[10]="China";数组元素个数为()。
( C )
50、C语言执行程序的开始执行点是()。
相关标签:
- C语言
- 安徽工业大学
- 期末模拟