您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 模拟题 >> 正文    
  计算机二级C语言试题库 【注册男护士专用博客】          

计算机二级C语言试题库

www.nanhushi.com     佚名   不详 


1
有以下程序
main()
{ int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a<b);
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是
A
0,0 B0,1 C1,0 D1,1
2
在一个C程序中
A
main函数必须出现在所有函数之前 Bmain函数可以在任何地方出现
C
main函数必须出现在所有函数之后 Dmain函数必须出现在固定位置
3
有以下程序
main()
{ int a=5,b=4,c=3,d=2;
if (a>b>c)
printf("%d\n", d);
else if ( (c-1 >= d) == 1)
printf("%d\n", d+1);
else
printf("%d\n", d+2);
}
执行后输出结果是
A
2 B3 C4 D)编译时有错,无结果
4
有以下程序
main()
{ int i;
for (i=0; i<3; i++)
switch (i)
{ case 1: printf("%d ", i);
case 2: printf("%d ", i);
default : printf("%d ", i);
}
}
执行后输出结果是
A
011122 B012 C012020 D120来源:www.examda.com
5
有以下程序
main()
{ int k=4,n=0;
for( ; n<k ; )
{ n++;
if(n%3!=0) continue;
k--; }
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是
A
1,1 B2,2 C3,3 D4,4


6有以下程序
fun(int a, int b)
{ if(a>b) return(a);
else return(b);
}
main()
{ int x=3, y=8, z=6, r;
r=fun(fun(x,y), 2*z);
printf("%d\n", r);
}
程序运行后的输出结果是
A
3 B6 C8 D12
7
有以下程序
int *f(int *x, int *y)
{ if (*x < *y)
return x;
else
return y;
}
main()
{ int a=7,b=8,*p,*q, *r;
p=&a; q=&b;
r = f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
执行后输出结果是
A
7,8,8 B7,8,7 C8,7,7 D8,7,8
8
以下能正确地定义整型变量abc并为其赋初值5的语句是
A)int a=b=c=5
B)int a,b,c=5
C)a=5,b=5,c=5
D)a=c=b=5
9
若二维数组am列,则在a[i][j]前的元素个数为
A
j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1
10
下面程序段是输出两个字符串中对应相等的字符。请选择填空
char x[]=”programming”;
char y[]=”Fortran”;
int i=0;
while(x[i]!=’\0’&&y[i]!=’\0’)
if(x[i]= =y[i])printf(“%c”,[]);
else i++;
A) x[i++] B)y[++i] C)x[i] D)y[i]

11若使用一维数组名作函数实参,则以下正确的说法是
A
)必须在主调函数中说明次数组的大小
B
实参数组类型与形参数组类型可以不匹配
C
在被调函数中,不需要考虑形参数组的大小
D
实参数组名与形参数组名必须一致
12
以下程序的正确运行结果是
#inclued<stdio.h>
main()
{int k=4,m=1,p;
p=func(k,m);printf(“%d”,p);
p=func(k,m);printf(“%d\n”,p);
}
func(int a,int b)
{static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A)8,17 B)8,16 C)8,20 D)8,8
13
若有说明:int *p,m=5,n;以下正确的程序段是
A) p=&n;scanf(“%d”,&p);
B) p=&n;scanf(“%d”,*p);
C) scanf(“%d”,&n);*p=n;
D) p=&n;*p=m;
14
执行以下程序后,ab的值为
main()
{int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(-*p1)/(*p2)+7;
printf(“a=%d\n”,a);
printf(“b=%d\n”,b);}
A)-1 ,5 B)1,6 C)0,7 D)4,10
15
若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是
A)”ab+” B)”wb+” C)”rb+” D”ab”
16
根据定义和数据的输入方式,输入语句的正确形式为
已有定义:float f1,f2;
数据的输入方式:4.52
3.5
A)scanf(“%f,%f”,&f1,&f2);
B) scanf(“%f%f”,&f1,&f2);
C) scanf(“%3.2f %2.1f”,&f1,&f2);
D) scanf(“%3.2f%2.1f”,&f1,&f2);
17
分析以下程序运行结果
#include<stdio.h>
int func(int n){
if(n==1)
return 1;
else
return(n*func(n-1));
}
void main(){
int x;
x=func(5)

printf(“%d\n”,x);
}
A)100 B)5 C)1 D)120


18 分析以下程序运行结果
#include<stdio.h>
void main(){
int y=2,a=1;
while(y--!=-1){
do{
a*=y;a++;
}while(y--);}
printf(“%d,%d\n”,a,y);}
A)1,-2 B)2,1 C)1,0 D)2,-1
19
下面程序段的运行结果是
char a[7]=”abcdef”;
charb[4]=”ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
A)
空格 B)\0 C)e D)f
20
下面是对s的初始化,其中不正确的是
A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’};
C)char s[5]=””; D)char s[5]=”abcdef”;
21
执行语句for(i=1;i++<4; );后变量i的值是
A)3 B)4 C)5 D)
不定
22
以下程序段
x=-1;
do
{x=x*x;}
while(!x);
A)
是死循环 B)循环执行二次
C)
循环执行一次 D)有语法错误
23
若有以下定义和语句:
inion data
{int i;
char c;
float f;
}a;
int n;
则以下语句正确的是
A)a=5; B)a={2,’a’,1.2}; C)printf(“%d\n”,a); D)n=a;
24
下面程序的运行结果是
main()
{
struct cmplx{int x;
int y;
}cnum[2]={1,3,2,7};
printf(“%d\n”,cnum[0].y/cnum[0].x*cunm[1].x);
}
A)0 B)1 C)3 D)6
25
以下程序的运行结果是
main()
{int k=4,a=3,b=2,c=1;
printf(“\n%d\n”,k<a?k:c<b?c:a);
}
A)4 B)3 C)2 D)1
填空
1
若有以下定义,则计算表达式y+=y-=m*=以后y的值是_____
int m=5,y=2;
2
若有定义:int b=7;float a=2.5,c=4.7;:则下面表达式的值为_____
a+(int)(b/3*(int)(a+c)/2)%4
3
int a=3,b=4,c=5;,则以下表达式的值为_____
!(a+b)+c-1&&b+c/2
4
条件”2<x<3x<-10”c语言表达式是_____
5
以下程序的功能是判断输入的年份是否是闰年.请在[ ]内填入正确内容
main()
{int y,f;
scanf(“%d”,&y);
if(y%400==0)f=1;
else if([5])f=1;
else[6];
if(f) printf(“%d is”,y);
else printf(“%d is not”,y);
printf(“a leap year\n”);
}
6
下面程序的功能是计算1001000之间有多少个数其各位数字之和是5。请填空
#include<stdio.h>
main(0
{int i,s,k,count=0;
for(i=100;i<=1000;i++)
{s=0;k=i;
while([7]){s=s+k%10;k=[8];}
if(s!=5)[9];
else count++;
}
printf(“%d”,count);
}
7
下面程序将二维数组a的行和列元素呼唤后存到另一个二维数组b中。请填空
main()
{int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],I,j;
printf(“array a:\n”);
for(i=0;i<=1;i++)
{for(j=0;[10];j++)
{printf(“%5d”,a[i][j]);
[11];
}
printf(“\n”);
}
printf(“array b:\n”);
for(i=0;[12];i++)
{for(j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
printf(“\n”);
}
}


8
以下search函数的功能是利用顺序查找法从数组a10个元素中对关键字m 进行查找。顺序查找法的思路是:从第一个元素开始,从前向后依次与关键字你叫,直到找到此元素或查找到数组尾部时结束。若找到,返回此元素的下标;若仍未找到,则返回值-1。请填空
#include<stdio.h>
int search(int a[10],int m)
{int I;
for(i=0;i<=9;i++) if([1])return(i);
return(-1);
}
main()
{int a[13],m,i,no;
……
no=search([14]);
if([15]) printf(“\nOK FOUND!%d”,no+1);
else printf(“\nSorry Not Found!”);
}
9
若有定义:int a[]={2,4,6,8,10,12},*p=a;*(p+1)的值是[16]*(a+5)的值是[17]
10
将任意输入的一个偶数n分解为两个素数之和,并给出各种分解方法
#include<stdio.h>
main()
{
int n,i;
int check(int x);
do{
scanf(“%d”,&n);
}while(n%2!=0);
for(i=3;i<=n/2;i++)
if(check(i)&&[18])
printf(“%d=%d+%d\n”,n,i,n-i);
}
int check(int x)
{
int i;
for(i=2;i<x;i++)
if([19]) return(0);
return(1);
}
11
函数调用语句:fgetsbufnfp);从fp指向的文件中读入[20]个字符放到buf字符数组中。函数值为[21]
12
设数组a包括10个整型元素。下面程序的功能是求出a 中各相邻元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。请填空
main()
{int a[10],b[10],i;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
for([22];i<10;i++)
[23]
for(i=1;i<10;i++)
{ printf(“%3d”,b[i]);
if([24]==0) printf(“\n”);
}
}
13
如果以下程序输入的是we are students,则输出的结果是[25]
#include “stdio.h”
void main()
{ char s[81],*p;
printf(“Input a sentence:\n”);gets(s);
for(p=s;*p;p++)
if(*p==32) //
空格键的ASCII值是32
{ if(*(p+1)!=32) printf(“\n”); }
else putchar(*p);
}

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目