C语言模拟试题四

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C)b=8-(3,a-5) D)b=a>5?4:2
4.已知变量C1为字符型变量,下面不正确的赋值语句是:。
A)C1 =‘abc’B)C1=‘\0’
C)C1 =‘7’+‘9’D)C1= 7 + 9
5.以下程序的输出结果是:。(注:▂表示空格)
main( )
{ printf(“\n*s1=%8s*”,“china”);
for(j=0;j<5;j++)
scanf(“%d”,&a[i][j]);
min=a[0][0];
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{if(i= =0||i= =4) sum=sum+a[i][j];
else if(j= =0||j= =4) sum=sum+a[i][j];
else if(score>=80) printf(“B”);
else if(score>=70) printf(“C”);
else if(score>=60) printf(“D”);
else printf(“E”);
}
2.main()
{int a[5][5],i,j,sum=0,min;
for(i=0;i<5;i++)
1.×2.×3.√4.×5.×
6.×7.×8.√9.×10.√
三、程序填空题(本大题12分,每小题2分)
评分标准:全对的满分,半对半错的给一半分,全错的不得分。
1.(1)d=a*b/c
(2)num1<num2
(3)x%y
2.(4)i<10
(5)a[i]-a[i-1]
(6)i%3= =0
四、写出下面程序的执行结果(本大题24分,每小题4分)
C)structD)struct
{ int num; { int num;
float age; float age; } student;
}std1; struct student std1;
二、判断题(本大题10分,每小题1分)-
1.在每个C文件中都必须并且只能有一个main函数。()
2.在C语言中,整型数据与实型数据在任何情况下都可以通用。()
10.C语言规定,C程序的各函数之间。
A)允许嵌套调用,但不允许嵌套定义;
B)不允许嵌套调用,但允许嵌套定义;
C)不允许嵌套调用,也不允许嵌套定义;
D)允许嵌套调用,也允许嵌套定义;。
11.若有如下定义和语句:
char s[12]=“a_book!”;
printf(“%d”,strlen(s) );
printf(〞%d〞,﹡p); printf(〞\n〞); }
五、编程题(共27分)
1.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’;80~89分为‘B’;70~79分为‘C’;60~69分为‘D’;60分以下为‘E’。
2.有一个5*5二维数组,试编程求周边元素及对角线元素之和,并输出该数组中值最小的元素。
7.在发生函数调用时,主~被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。()
8.C语言的一个重要特点是能够直接处理物理地址,其指针类型数据就是用来存放变量地址的。()
9.字符串是C语言中一种基本数据类型,字符串总是以‘\n’作为结束标志。()
10.C程序的三种结构化程序设计方法分别顺序结构、选择结构和循环结构,由这三种结构组成的程序可以解决任何复杂的问题。()
3.编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键盘输入整数为1到12时,显示相应的月份名,键入其它整数时显示错误信息。
模拟试题四答案
一、选择题(本大题30分,每小题2分)
1~5 D C B A D 6~10 D A C C A
11~15 CD B B D
二、判断题(本大题10分,每小题1分)
评分标准:全对的满分,半对半错的给一半分,全错的不得分。
1.#&
*
2. *****
*
*
*
*
3.15
4.9
5.-1
6.654321
五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)
1. main()
{float score;
scanf(“%f”,&score);
if(score>=90) printf(“A”);
C)char a3[10]; a3=“C program”;
D)char a4[10]={“C program”}
9.用scanf函数输入一个字符串到数组str中,下面正确的语句是:。
A)scanf(“%s”,&str); B)scanf(“%c”,&str[10]);
C)scanf(“%s”, str) ; D)scanf(“%s”,str[10]);
A)‘a’+‘b’B)a<=b
C)a||b+c&&b-c D)!( (a<b) &&!c || 1 )
7.已知int x=10,y=20,z=30;以下语句执行后变量x、y、z的值分别为:。
if (x>y||x<z&&y>z)
{ z=x; x=y; y=z;}
A)x=10, y=20, z=30 B)x=20, y=30, z=30
else a[i][j]=' ';
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%c",a[i][j]);
printf("\n"); }
}
3. main( )
{ int i=5 ;
printf(“%d\n”, sub(i) ); }
sub( int n)
{ int a;
{ int a = 2, b = 3, c ;
c = a ;
if ( a>b ) c = 1 ;
else if ( a == b ) c = 0 ;
else c = -1 ;
printf (“%d\n”, c ) ;
}
6.# include <stdio.h>
main ( )
{ int a[ ]={1,2,3,4,5,6},﹡p; for (p=&a[5];p>=a;p﹣﹣)
{char *months[ ]={“January”,”February”,”March”,”April”,”May”,”June”,”July”,
“August”,”September”,”October”,”November”,”December”};
int n;
printf(“月份:”);
scanf(“%d”,&n);
return (y) ; }
2.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。
main( )
{ int a[10],b[10],I;
for(I=0;I<10; I++)
scanf(“%d”,&a[I]) ;
for(I=1;(4); I++)
gongyue( int num1, int num2 )
{ int temp, x, y ;
if (__(2)__)
{ temp=num1; num1=num2 ; num2=temp ; }
x=num1 ; y=num2 ;
while(__(3)_____)
{ temp=x%y ; x=y ; y = temp ; }
3.在C语言程序中,happy是正确的标识符。()
4.在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。()
5. C语言规定,简单变量做实参时,与其对应的形参之间是双向的值传递。()
6.数组在定义时要求指定数组类型,数组名及数组长度,其中表示数组长度的表达式可以是任意类型的常量表达式。()
C)x=20, y=30, z=10 D)x=20, y=30, z=20
8.下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是:。
A)char a1[]={‘C’,‘’,‘p’,‘r’,‘o’,‘g’,‘r’,‘a’,‘m’}
B)char a2[10]; strcpy(a2,“C program”);
模拟试题四
一、选择题(本大题30分,每小题2分)
1.在C语言中,反斜杠符是。
A)\nB)\tC)\vD)\ \
2.表达式18/4*sqrt(4.0)/8值的数据类型为。
A)int B)float C)double D)不确定
3.设整型变量a值为9,则下列表达式中使b的值不为4的表达式。
A)b=a/2 B)b=a%2
if(n<=12&&n>=1)
printf(“%d月的英文名称是%s\n”,n,*(months+n-1));
else
printf(“输入的月份无效!\n”);
}
else if(i= =j) sum=sum+a[i][j];
else if(i+j= =4) sum=sum+a[i][j];
if(min>a[i][j]) min=a[i][j];
}
printf(“sum=%d,min=%d”,sum,min);
}
3.#inwenku.baidu.comlude <stdio.h>
main( )
func((exp1,exp2),(exp3,exp4,exp5))
A) 1 B)2 C) 4 D) 5
14.有如下语句int a=10,b=20,*p1,*p2; p1=&a; p2=&b;如图1所示;若实现如图2所示的存储结构,可选用的赋值语句是:。
p1 p2 p1 p2
a b a b
10 20 10 20
则输出结果是:。
A)12 B)10 C)7 D)6
12.下面程序的运行结果是:。
#include <stdio.h>
main( )
{ int y=10;
do { y--; } while(--y) ;
printf(“%d\n”,y--); }
A)-1 B)1 C)8 D)0
13.下面函数调用语句中实参的个数为:。
图1图2
A)*p1=*p2 B)p1=p2 C)p1=*p2 D)*p1=p2
15.以下对结构体类型变量的定义中不正确的是。
A)#define STUDENTstruct studentB)struct student
STUDENT{ int num;
{ int num; float age;
float age; }std1; }std1;
b[I]=(5);
for(I=1;I<10;I++)
{ printf(“%3d”,b[I]);
if ((6))
printf(“\n”); }
}
四、写出下面程序的执行结果(本大题24分,每小题4分)
1.main( )
{ inti;
for(i=1;i<=5;i++)
switch(i%5)
{ case 0: printf(“*”) ; break;
三、程序填空题(本大题12分,每小题2分)
1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。
main( )
{ int a, b ,c,d;
scanf(“%d, %d”, &a, &b ) ;
c = gongyue( a, b ) ;
(1);
printf(“gongyue=%d,gongbei=%d\n”, c,d) ; }
case 1: printf(“#”) ; break;
default: printf(“\n”);
case 2: printf(“&”); }
}
2.main( )
{ char a[5][5],i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(i= =0||i= =j)
a[i][j]='*';
if(n==1) a=1;
else a= n+sub(n-1);
return(a); }
4.int f(int x,int y)
{ return((y-x)*x); }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
5. main( )
printf(“\n*s2=%-5s*”,“chi”) ; }
A)*s1=china▂▂▂* B)*s1=china▂▂▂*
*s2=chi* *s2=chi▂▂*
C)*s1=▂▂▂china* D)*s1=▂▂▂china*
*s2=▂▂chi * *s2=chi▂▂*
6.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是:。
相关文档
最新文档