C语言模拟试题II
- 格式:doc
- 大小:55.00 KB
- 文档页数:11
《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案
一、单项选择题(每题2分,30道题,共60分)
1.下面的程序将输出:
main()
{
float f;
int x=1,y=2.5;
f=x/y;
printf("f=%1.1f,y=%#X", f, y );
}
A.f=0.0 , y=2
B.f=0.5 , y=0X2
C.f=0.0 , y=0X2
D.f=0.5 , y=2
2.下面的程序将输出:
#include "string.h"
main()
{
int len;
char str[]="a\b\04235\0";
len=strlen(str);
printf("%d",len);
}
A. 10
B. 5
C. 6
D. 7
3.下面的程序将输出:
main()
{
int a=0x31;
char *str[]={"this is one. ","this is two. "};
char ch;
ch=++a-’0’;
switch(ch)
{
case 1: printf ("%s", str[0]);
case 2: printf ("%s", str[1]);
default: printf ("no way! ");
}
}
A.this is one.
B.this is two.
C.no way!
D.this is two.no way!
4.下面的程序将输出:
main()
{
int a[5]={1,2,3};
int k,j;
for(k=1;k<4;k++)
a[k]++;
for(j=0;j<5;j++)
printf("%d ",a[j]);
}
A.1 3 4 1 0
B.2 3 4 1 0
C.2 3 4 0 0
D.1 3 4 0 0
5.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是:
int a[10];
int *p;
p=a;
A.a[2]=1;
B.p[1]=1;
C.*(p++)=1;
D.*(++a)=1;
6.下面程序将输出:
void add(int a)
{
a++;
return;
}
main()
{
int k;
k=3.4;
add(k);
printf("%d",k);
}
A. 3.4
B. 4.4
C. 3
D. 4
无限循环的是:
7.下列循环结构中,不是
..
A. for(i=1, s=0; ; i++)
B. i=10;
s=s+i ; while(1)
{i=i%10+1;
if(i>10) break; }
C. int i=0;
D. i =100;
do{ ++i ; }while(i>=0); while(++i%2) i++;
8.若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:
A.a[2][2]
B.p[5]
C.a[5]
D.p[1][1]
9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少?
A. 0X5050
B. 0X5002
C. 0X5004
D. 0X5040
10.若有说明int a[2][2];那么,下面正确的C赋值语句是:
A.a=2;
B.a[1]=2;
C.a[1]={1,2};
D.a[0][1]=a[1][0];
11.设x为int型变量,则执行以下语句后,x的值为
x=10; x+=x-=x-x;
A.10 B.20 C.40 D.30
12.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是:
A.0 B.语法错C.1 D."假"
13.下面能正确进行字符串
赋值操作的语句是:
...
A.char s[5]={"ABCDE"}; B.char s[]={'A','B','C','D','E'};
C.char *s;s="ABCDEF"; D.char *s;scanf("%s",s);
14.已知:int a[3][4], *p=&a[0][0]; p+=6; 那么*p 和_____的值相同.
A.(a+6) B.*(&a[0]+6) C.a[2][2] D.*(&a[0][0]+6)
15.设有以下说明和定义:
typedef union { long i; int k[4]; char c; }DATE;
struct date { int cat; DATE cow; double dog; } too;
DATE max;
则下列语句的执行结果是
printf ("%d",sizeof (struct date ) +sizeof(max));
A.26 B.30 C.18 D.8
16.设有如下定义:
int *(*ptr)();
则以下叙述中正确的是
A.ptr是指向一维组数的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是指向函数的指针,该函数的返回值是指向int型数据的指针
17.若二维数组a 有m列,则在a[i][j]之前的元素个数为______
A.j*m+i B.i*m+j C.i*m+j-1 D.i*m+j+1