C语言模拟试题II
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《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 18.以下程序运行后,输出结果是
A.13 B.51 C.11 D.53 int d=1;
fun (int p)
{int d=5;
p=d;
printf("%d",p);
}
main()
{int a=3;
fun(a);
d=a;
printf("%d\n",d);
}
19.以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为
A.4 B.7 C.6 D.5
#include
#include
func(char str[ ] )
{ int num =0;
while(*(str+num)!='\0') num++;
return(num);
}
main( )
{char str[10],*p=str;
gets(p); printf("%d\n",func(p));
}
20.执行以下程序段后,m的值为
int a[2][3]={ {1,2,3},{4,5,6} };