C程序1
2011年12月15日
一、正误 共10题
第1题
char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
答案:N
第2题
C语言的当型循环是先执行循环后判断条件.
答案:N
第3题
C语言中的整型常量有3种表示方法.
答案:Y
第4题
表达式1/4+2.75的值是3.
答案:N
第5题
C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:Y
第6题
静态变量和外部变量都是全局变量,它们的存储是静态的.
答案:N
第7题
若有int i=10,j=2; 则执行完i*=j+8;后i的值为28.
答案:N
第8题
char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样.
答案:Y
第9题
"++"运算符的优先级比"+"运算符的优先低.
答案:N
第10题
unsigned 和void 在C中都是保留字.
答案:Y
二、单项选择 共30题
第1题
若char a[10];已正确定义,以下语句中不能从键盘上给a数组的
所有元素输入值的语句是().
A:gets(a);
B:scanf("%s",a);
C:for(i=0;ic)b=a;a=c;c=b;则c的值为()。
A:1
B:2
C:3
D:不一定
答案:B
第7题
以下程序段 char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
的输出结果是()。
A:A
B:B
C:D
D:DEF
答案:D
第8题
在C语言中,char型数据在内存中的存储形式是()。
A:补码
B:反码
C:原码
D:ASCII码
答案:D
第9题
以下不符合C语言语法的赋值语句是()。
A:a=1,b=2
B:++j;
C:a=b=5;
D:y=(a=3,6*5);
答案:A
第10题
若使用一维数组名作函数实参,则以下正确的说法是().
A:必须在主调函数中说明此数组的大小
B:实参数组类型与形参数组类型可以不匹配
C:在被调用函数中,不需要考虑形参数组的大小
D:实参数组名与形参数组名必须一致
答案:A
第11题
下列程序的输出结果是()。
main()
{int a=7,b=5;
printf("%d\n",b=b/a);
}
A:0
B:5
C:1
D:不确定值
答案:A
第12题
经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是().
A:p=p+2;
B:p=a[5];
C:p=a[2]+2;
D:p=&(j+2);
答案:A
第13题
下列字符序列中,不可用作C语言标识符的是()。
A:b70
B:#ab
C:symbol
D:a_1
答案:B
第14题
以下不是无限循环的语句为().
A:for(y=0,x=1;x>++y;x=i++) i=x;
B:for(;;x++=i);
C:while(1){x++;}
D:for(i=10;;i--) sum+=i;
答案:A
第15题
若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),
则以下程序段的执行结果是()。
ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k);
A:因变量类型与格式描述符的类型不匹配,输出无定值
B:输出项与格式描述符个数不符,输出为零值或不定值
C:61,141,k=%d
D:61,141,k=%12
答案:C
第16题
在位运算中,操作数每右移一位,其结果相当于()。
A:操作数乘以2
B:操作数除以2
C:操作数乘以16
D:操作数除以16
答案:B
第17题
若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
的语句为()。
A:printf("%d",*(a+5));
B:printf("%d",p[5]);
C:printf("%d",*(p+5));
D:printf("%d",*p[5]);
答案:D
第18题
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:a3_b3
B:void
C:_123
D:IF
答案:B
第19题
C语言程序中,当调用函数时().
A:实参和虚参各占一个独立的存储单元
B:实参和虚参可以共用存储单元
C:可以由用户指定是否共用存储单元
D:计算机系统自动确定是否共用存储单元
答案:A
第20题
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。
char a='a'; a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:b,c
B:a--运算不合法,故有语法错
C:98,c
D:格式描述和输出项不匹配,输出无定值
答案:C
第21题
下列程序段的输出结果为().
int a=7,b=9,t;
t=a*=a>b?a:b;
printf("%d",t);
A:7
B:9
C:63
D:49
答案:C
第22题
设 char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数
是()。
A:9
B:5
C:6
D:7
答案:C
第23题
为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:
else子句总是与()配对。
A:缩排位置相同的if
B:其之前最近的if
C:其之后最近的if
D:同一行上的if
答案:B
第24题
下列数据中,为字符串常量的是()。
A:A
B:"house"
C:How do you do.
D:$abc
答案:B
第25题
设C语言中,int类型数据占4个字节,则short类型数据占().
A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:B
第26题
下列运算符中优先级最高的是()。
A:0||E不能作为合法的C用户定义标识符的是().
A:putchar
B:_double
C:_123
D:INT
答案:A
第30题
设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的
数据类型为()。
A:int
B:float
C:double
D:不确定
答案:C
三、程序填空 共2题
第1题
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:从键盘上输入两个复数的实部与虚部,求出并输出它们的
和、差、积、商。
-------------------------------------------------------*/
#include
void main()
{float a,b,c,d,e,f;
printf("输入第一个复数的实部与虚部:");
scanf("%f, %f",&a,&b);
printf("输入第二个复数的实部与虚部:");
scanf("%f, %f",&c,&d);
/***********SPACE***********/
【?】;
f=b+d;
printf("相加后复数:实部:%f,虚部:%f\n",e,f);
e=a*c-b*d;
/***********SPACE***********/
【?】;
printf("相乘后复数:实部:%f,虚部:%f\n",e,f);
e=(a*c+b*d)/(c*c+d*d);
/***********SPACE***********/
【?】;
printf("相除后复数:实部:%f,虚部:%f\n",e,f);
}
答案:
=======(答案1)=======
e=a+c
=========或=========
e=c+a
=======(答案2)=======
f=a*d+b*c
=========或=========
f= a*d + b*c
=========或=========
f= a * d + b * c
=======(答案3)=======
f=(b*c-a*d)/(c*c+d*d)
=========或=========
f=(b*c-a*d) / (c*c+d*d)
=========或=========
f=( b * c - a * d ) / ( c * c + d * d )
第2题
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
-------------------------------------------------------*/
main()
{
int m,n,k,i=0;
for(m=100;m0)
=========或=========
while(0
#include
#include
void fun (char *s, char *t)
{
/**********FOUND**********/
int i;
sl = strlen(s);
for (i=0; iRead File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("Write File Error");
}
fscanf(IN,"%s",i);
copy(i,o);
fprintf(OUT,"%s\n",o);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i;
for(i=0;str1!='\0';i++)
str2=str1;
str2='\0';
----------------------
2011年12月15日
一、正误 共10题
第1题
char *p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
答案:N
第2题
C语言的当型循环是先执行循环后判断条件.
答案:N
第3题
C语言中的整型常量有3种表示方法.
答案:Y
第4题
表达式1/4+2.75的值是3.
答案:N
第5题
C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:Y
第6题
静态变量和外部变量都是全局变量,它们的存储是静态的.
答案:N
第7题
若有int i=10,j=2; 则执行完i*=j+8;后i的值为28.
答案:N
第8题
char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样.
答案:Y
第9题
"++"运算符的优先级比"+"运算符的优先低.
答案:N
第10题
unsigned 和void 在C中都是保留字.
答案:Y
二、单项选择 共30题
第1题
若char a[10];已正确定义,以下语句中不能从键盘上给a数组的
所有元素输入值的语句是().
A:gets(a);
B:scanf("%s",a);
C:for(i=0;ic)b=a;a=c;c=b;则c的值为()。
A:1
B:2
C:3
D:不一定
答案:B
第7题
以下程序段 char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
的输出结果是()。
A:A
B:B
C:D
D:DEF
答案:D
第8题
在C语言中,char型数据在内存中的存储形式是()。
A:补码
B:反码
C:原码
D:ASCII码
答案:D
第9题
以下不符合C语言语法的赋值语句是()。
A:a=1,b=2
B:++j;
C:a=b=5;
D:y=(a=3,6*5);
答案:A
第10题
若使用一维数组名作函数实参,则以下正确的说法是().
A:必须在主调函数中说明此数组的大小
B:实参数组类型与形参数组类型可以不匹配
C:在被调用函数中,不需要考虑形参数组的大小
D:实参数组名与形参数组名必须一致
答案:A
第11题
下列程序的输出结果是()。
main()
{int a=7,b=5;
printf("%d\n",b=b/a);
}
A:0
B:5
C:1
D:不确定值
答案:A
第12题
经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是().
A:p=p+2;
B:p=a[5];
C:p=a[2]+2;
D:p=&(j+2);
答案:A
第13题
下列字符序列中,不可用作C语言标识符的是()。
A:b70
B:#ab
C:symbol
D:a_1
答案:B
第14题
以下不是无限循环的语句为().
A:for(y=0,x=1;x>++y;x=i++) i=x;
B:for(;;x++=i);
C:while(1){x++;}
D:for(i=10;;i--) sum+=i;
答案:A
第15题
若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),
则以下程序段的执行结果是()。
ch='a'; k=12; printf("%x,%o,",ch,ch,k); printf("k=%%d\n",k);
A:因变量类型与格式描述符的类型不匹配,输出无定值
B:输出项与格式描述符个数不符,输出为零值或不定值
C:61,141,k=%d
D:61,141,k=%12
答案:C
第16题
在位运算中,操作数每右移一位,其结果相当于()。
A:操作数乘以2
B:操作数除以2
C:操作数乘以16
D:操作数除以16
答案:B
第17题
若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5
的语句为()。
A:printf("%d",*(a+5));
B:printf("%d",p[5]);
C:printf("%d",*(p+5));
D:printf("%d",*p[5]);
答案:D
第18题
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:a3_b3
B:void
C:_123
D:IF
答案:B
第19题
C语言程序中,当调用函数时().
A:实参和虚参各占一个独立的存储单元
B:实参和虚参可以共用存储单元
C:可以由用户指定是否共用存储单元
D:计算机系统自动确定是否共用存储单元
答案:A
第20题
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。
char a='a'; a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:b,c
B:a--运算不合法,故有语法错
C:98,c
D:格式描述和输出项不匹配,输出无定值
答案:C
第21题
下列程序段的输出结果为().
int a=7,b=9,t;
t=a*=a>b?a:b;
printf("%d",t);
A:7
B:9
C:63
D:49
答案:C
第22题
设 char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数
是()。
A:9
B:5
C:6
D:7
答案:C
第23题
为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定:
else子句总是与()配对。
A:缩排位置相同的if
B:其之前最近的if
C:其之后最近的if
D:同一行上的if
答案:B
第24题
下列数据中,为字符串常量的是()。
A:A
B:"house"
C:How do you do.
D:$abc
答案:B
第25题
设C语言中,int类型数据占4个字节,则short类型数据占().
A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:B
第26题
下列运算符中优先级最高的是()。
A:0||E不能作为合法的C用户定义标识符的是().
A:putchar
B:_double
C:_123
D:INT
答案:A
第30题
设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的
数据类型为()。
A:int
B:float
C:double
D:不确定
答案:C
三、程序填空 共2题
第1题
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:从键盘上输入两个复数的实部与虚部,求出并输出它们的
和、差、积、商。
-------------------------------------------------------*/
#include
void main()
{float a,b,c,d,e,f;
printf("输入第一个复数的实部与虚部:");
scanf("%f, %f",&a,&b);
printf("输入第二个复数的实部与虚部:");
scanf("%f, %f",&c,&d);
/***********SPACE***********/
【?】;
f=b+d;
printf("相加后复数:实部:%f,虚部:%f\n",e,f);
e=a*c-b*d;
/***********SPACE***********/
【?】;
printf("相乘后复数:实部:%f,虚部:%f\n",e,f);
e=(a*c+b*d)/(c*c+d*d);
/***********SPACE***********/
【?】;
printf("相除后复数:实部:%f,虚部:%f\n",e,f);
}
答案:
=======(答案1)=======
e=a+c
=========或=========
e=c+a
=======(答案2)=======
f=a*d+b*c
=========或=========
f= a*d + b*c
=========或=========
f= a * d + b * c
=======(答案3)=======
f=(b*c-a*d)/(c*c+d*d)
=========或=========
f=(b*c-a*d) / (c*c+d*d)
=========或=========
f=( b * c - a * d ) / ( c * c + d * d )
第2题
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
-------------------------------------------------------*/
main()
{
int m,n,k,i=0;
for(m=100;m0)
=========或=========
while(0
#include
#include
void fun (char *s, char *t)
{
/**********FOUND**********/
int i;
sl = strlen(s);
for (i=0; iRead File Error");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("Write File Error");
}
fscanf(IN,"%s",i);
copy(i,o);
fprintf(OUT,"%s\n",o);
fclose(IN);
fclose(OUT);
}
答案:----------------------
int i;
for(i=0;str1!='\0';i++)
str2=str1;
str2='\0';
----------------------