c语言测试

c语言测试
c语言测试

*仅为练习使用,勿外传,不然助班会尴尬的。。。

计算机与网络安全学院

《 C语言测试》

【考试说明】考试答案必须填在答题卡上,否则答案无效。

一、程序填空题(12题共50分,每空2

说明:每空必须且只能填写一个语句或一个预处理。答案必须填写在答题卡程序填空题的相应位置上,否则不得分。

1.编程计算1+11+111+…+111111111,请填空。

#include

main()

{

int i;

long int k=1,s=0;

for( 1 )

{

s+=k;

2 ;

}

printf("%d\n",s);

}

2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数。请填空。

#include"stdio.h"

main ( )

{

int n,k=1,s=0,m ;

for (n=1 ; n<=100 ; n++)

{

k=1 ; s=0 ;

m=n;

while ( 3 )

{

k*=m%10;

s+=m%10;

4 ;

}

if (k>s)

printf("%d,",n);

}

}

3.以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。

#include"stdio.h"

void fun(char str[])

{

int i,j;

char temp;

for(i=0,j= 5 ;i

{

temp=str[i];

str[i]=str[j];

str[j]=temp;

}

}

void main()

{

char a[10]="abcde";

fun(a);

printf("%s\n",a);

}

4.找出一个小于给定整数m且紧随m的素数,比如m=100,紧随m的素数为97,请填空。

#include

int fun(int m)

{

int i,k;

for( 7 ;i>=2;i--)

{

for(k=2;k

if(i%k==0)

8 ;

if(k>=i)

return(i);

}

}

main()

{

int n;

printf("\nplease enter n:");

scanf("%d", &n);

printf("max=%d\n",fun(n));

}

5.统计正整数的各位数字中零的个数,并求各位数字的最大数,请填空。

#include

main()

{

int n,count,max,t;

count=max=0;

scanf("%d", &n);

do

{

t= 9 ;

if(t==0)

++count;

else if(max

10 ;

n/=10;

}while(n);

printf("count=%d,max=%d",count, max);

}

6.将数组a中的数据按逆序存放,然后输出,请填空。

#include

main()

{

int a[7],*p=a,*q,r;

for(p=a;p

scanf("%d",p);

p=a;

q= 11 ;

while( 12 )

{

r=*p;

*p=*q;

*q=r;

p++;

q--;

}

for(p=a;p

printf("%d\n",*p);

}

7.以下程序计算输入的字符串长度,请填空。

#include

int strlen1(char*s);

main()

{

char s[80];

scanf("%s",s);

printf("%d\n", 13 );

}

int strlen1(char*s)

{

int n;

for( 14 )

++n;

return(n);

}

8.编写函数acopy( ),将数组a[]的内容赋值到b[]数组中。(以 999

做结束标志),请填空。

#include

void acopy( 15 )

{

int i=0;

while(a[i]!=-999)

{

b[i]=a[i];

i++;

}

16 ;

}

main( )

{

int a[]={1,2,3,4,5,6,7,8,9,10,-999};

int b[100],i=0;

acopy(a,b);

while(b[i]!=-999)

printf("%d",b[i++]);

}

9.给定一个整型数组a,用递归法找出其中的最大值。递归思想如下:

目标:max{a[0],a[1],...a[n-1]};可分解为:max{a[0],max{a[1],...a[n-1]}},请填空。

#include"stdio.h"

int max1(int a[], int first, int n)

{

int max;

if(first==n-1)

17 ;

18 ;

if(max

return a[first];

else

return max;

}

void main()

{

int a[5]={3,5,2,7,1};

printf("%d\n",max1(a,0,5));

}

10.打印出以下的三角图形,请填空。

*

***

*****

*******

#include

main()

{

int row,blank,star,n;

scanf("%d",&n);

for(row=1;row

for(blank=1; 19 ;blank++)

printf(" ");

for(star=1; 20 ;star++)

printf("*");

printf("\n");

}

}

11. 利用指向行的指针变量求3×4数组各行元素之和。要求:求一行的和用一个函数实现,参数包括行首地址和一行的元素数目。请填空。

#include

int sum1( int (*p)[],int colNum){//行指针

int sum=0,i;

for(i=0;i

sum+= 21 ;

return sum;

}

main()

{

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},i;

for(i=0;i<3;i++)

printf("the %d row's sum is: %d\n",

i+1,sum1( 22 ));//a+i表示行地址}

12.以下程序的功能是:读入一行字符(如:a、...y、z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。请填空。

#include

#include

main()

{

struct node

{

char info;

struct node*link;

}*top,*p;

char c;

top=NULL;

while( 23 )

{

p=(struct node*)malloc(sizeof(struct node));

p->info=c;

p->link=top;

24 ;

}

while(top)

25 ;

top=top->link;

putchar(p->info);

free(p);

}

}

二、阅读程序题(14题共42分,每题3

说明:答案必须填写在答题卡阅读程序题的相应位置上,否则不得分。

1.请阅读分析下面程序,然后写出运行结果。

#include

main()

{

int i=0,j=0,k=0,m;

for(m=0;m<4;m++)

switch(m)

{

case0:i=m++;

case1:j=m++;

case2:k=m++;

case3:m++;

}

printf("\n%d,%d,%d,%d",i,j,k,m);

}

2.已知字符A 的ASCII 代码值为65,下列程序运行时若从键盘输入:B33。写出运行结果。

#include

main( )

{

char a;

int b;

a=getchar( );

scanf("%d", &b);

a=a-'A'+'p';

b=b*2;

printf("%c %d\n",a,b);

}

3.请阅读分析下面程序,然后写出运行结果。

#include

main( )

{

int a,b,c;

a=10;

b=20;

c=(a%b<1)||(a/b>1);

printf("%d %d %d\n",a,b,c);

}

4.请阅读分析下面程序,然后写出运行结果。

#include

main( )

{

int a=3,b=4,c=5,t=99;

if(b

t=a;

a=c;

c=t;

}

if(a

t=b,b=a,a=t;

printf("%d,%d,%d\n",a,b,c);

}

5.请阅读分析下面程序,然后写出运行结果。

#include

#include

void main()

{

char str[4][80],c[80];

int i;

for(i=0;i<4;i++)

gets(str[i]);

strcpy(c,str[0]);

for(i=1;i<4;i++)

if(strlen(c)

strcpy(c,str[i]);

puts(c);

}

输入:aagbc abfegeg dfe kjc

6.请阅读分析下面程序,然后写出运行结果。

#include

void main( )

{

int i=1,j=3,k=5;

do

{

if(i%j==0)

if(i%k==0)

{

printf("%d\n" , i) ;

break;

}

i++;

}

while(i!=0);

}

7.请阅读分析下面程序,然后写出运行结果。

#include "stdio.h"

void main()

{

char a[] ={'*','*','*','*','*'};

int i,j,k;

for ( i=0; i<5; i++)

{

printf ("\n");

for (j=0; j

printf("%c" , ' ');

for (k=0; k<5; k++)

printf("%c" , a[k]);

}

}

8.请阅读分析下面程序,然后写出运行结果。

# include "stdio.h"

void main ( )

{

int i,j,r,c,m;

int a[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

m=a[0][0];

r=0;

c=0;

for(i=0;i<3;i++)

for(j=0;j<3;j++)

if(a[i][j]

{

m=a[i][j];

r=i;

c=j;

}

printf("%d,%d,%d\n",m,r,c);

}

9.请阅读分析下面程序,然后写出运行结果。

# include "stdio.h"

void func( int b[])

{

int i;

for( i=0;i<=4;i++)

b[i]++;

}

void main()

{

int a[5], i;

for(i=0;i<=4;i++)

a[i]=i;

for(i=0;i<=4;i++)

printf("%d ",a[i]);

printf("\n");

func(a);

for(i=0;i<=4;i++)

printf("%d ",a[i]);

}

10.请阅读分析下面程序,然后写出运行结果。

#include "stdio.h"

int fun2(int,int);

int fun1(int a, int b)

{

int c;

a+=a;

b+=b;

c= fun2(a,b);

return c*c;

}

int fun2(int a, int b)

{

int c;

c=a*b%3;

return c;

}

void main()

{

int x=11, y=19;

printf("%d\n", fun1(x, y) );

}

11.请阅读分析下面程序,然后写出运行结果。

#include "stdio.h"

int f(int a);

main()

{

int a=2,k;

for(k=0;k<3;k++)

printf("%d",f(a));

}

int f(int a)

{

int b=0;

static int c=3;

b++;

c++;

return (a+b+c);

}

12.请阅读分析下面程序,然后写出运行结果。

#include "stdio.h"

#include

void fun(char *s, int p, int k)

{

int i;

for(i=p;i

s[i]=s[i+2];

}

main( )

{

char s[ ]="abcdefg";

fun(s,3,strlen(s));

puts(s);

}

13.请阅读分析下面程序,然后写出运行结果。

#include "stdio.h"

struct S{

int n; int a[20];

};

void f(int *a,int n)

{

int i;

for(i=0;i

a[i]+=i;

}

main()

{

int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};

f(s.a, s.n);

for(i=0;i

printf("%d,",s.a[i]);

}

14.请阅读分析下面程序,然后写出运行结果。

#include"stdio.h"

struct stu

{

int x ;

int y;

} *p ;

struct stu a[4]={50 , 10 , 60 ,20 , 70 , 30 , 80 ,40 } ;

void main()

{

p=a;

printf("%d," , --p->x);

printf("%d," , (++p)->x );

printf("%d\n" , --(p->y) );

}

三、编程题(1题共8分)

1.编写一个C语言程序,完成以下功能:)

(1)设计一个自定义函数IsCubeNum,该函数的功能是判断某整数n否是某个整数的立方数。例如1、8、27、64、125等数就是立方数。

(2)在主函数main()中输入某个整数n,调用函数IsCubeNum后,在屏幕上输出“n是立方数”或“n不是立方数”。如n=27时,则显示“27是立方数”,如n=30时,则显示

“30不是立方数”。

软件(C语言)测试题

软件测试题(C语言) 1.请给出正确答案:(10’) #define y 3+2 int a = 5, b = 7, c; c = (a+++b)*y; 这段代码持行后a=( ) b=( ) c=( ) 2.下面的代码输出是什么,为什么?(10’) void func(void) { unsigned int a = 10; int b = -20; (a+b > 10) ? puts("> 10") : puts("<= 10"); } 3.下面的函数有错误吗?如有该怎样修改?(10’) int square(volatile int *ptr) { return *ptr * *ptr; } 4.下面的代码使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码:(20’) __interrupt double compute_area (double radius) { double area = PI * radius * radius; printf("\nArea = %f", area); return area; } 5.请编写下面函数:(20’) void* m emmove(void *dest, const void *src,size_t n) 6.请编程实现:(30’) M个人围成一圈,按顺时针方向依次编号为1到M,从编号1开始顺时针方向报数,报到为N的人出局,出局人的下一位重新从1开始报数,请编程求出最后剩下的人的编号。

参考答案: 1.a=( 6 ) b=( 7 ) c=( 38 ) 2.(1)答案是输出是">10"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于10。 (2)如果答对了,面试时可以接着问假如编译器认为int为16位数据,a+b结果为多少。(答案65526) 3.因为volatile可能被意想不到地改变,因此这段代码可能返不是你所期望的平方值!正确的代码如下: long square(volatile int *ptr) { int a; a = *ptr; return a * a; } 4.1)ISR 不能返回一个值。 2) ISR 不能传递参数。 3) 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。 4) printf()经常有重入和性能上的问题。 5.仅供参考: void* memmove(void *dest, const void *src,size_t n) { if (n == 0) return 0; if (dest == NULL) return 0; if (src == NULL) return 0; char *psrc = (char*)src; char *pdest = (char*)dest; if((dest <= psrc) || (pdest >= psrc + n)) /*检查是否有重叠问题*/ { for(int i=0; i < n; i++) /*正向拷贝*/ { *pdest = *psrc; psrc++; pdest++; } } else /*反向拷贝*/ {

C语言期末考试真题

第五套 一、判断题 1.(F)在一个c程序中,main函数必须出现在所有函数之前。 2.(F)#include”stdio.h”是每个程序中必须写的。 3.(F)c程序总是从程序的第一条语句开始执行的。 4.(F)以下各数均不是合法的八进制数:256,03A2,-0127。 5.(F)语句scanf(“%7.2f”,&a):是一个合法的scanf函数。 6.(T)整数-32100可以赋值给int型和long int型变量。 7.(F)表达式(j=3,j++)的值是4. 8.(F)在c程序中,赋值运算符的优先级最低。 9.(F)7&3+12的值是15. 10.(F)若a是实型变量,在执行了a=5后,a将变为整型变量。 11.(F)若有i=10,j=2:则执行完i*=j+8:后i的值是28. 12.(F)若a是实型变量,c程序中允许以下赋值a=10:因此实型变量中允许存放整型变量。 13.(T)在c语言中,逻辑“真”等价于不等于0的数。 14.(F)开关语句switch最多可以形成3个分支. 15.(T)Int a=1,b=2,c=3:if(a>c)b=a:a=c:c=b:则c的值是2. 16.(T)Int i=3,j=5:if(i>j):是正确的。 17.(F)若有i=10,j=0:则执行完语句if(j=0):i++:elsei --:i的值为11 18.(T)break语句只能用于循环语句switch-case语句中。 19.(T)若有说明int c:则while(c=getchar()):是正确的c语句。 20.(T)Int a[10]:for(i=1:i<10:i++)a[i-1]=i:能使数组元素分别取值{1,2,3,4,5,6,7,8,9,10}. 21.(F)二维数组在内存中储存以列为主序方式存放。 22.(T)c程序中#include和#define均不是c语句 23.(F)通过return语句,函数可以带回一个或一个以上的返回值 24.(T)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量 25.(T)对结构体类型的变量的成员可以象普通变量一样参与各种运算 二、选择题 1.(A)是构成c语言程序的基本单位。 A函数 B变量 C子程序 D语句 2.(B)以下叙述中正确的是 A.c语言的源程序不必通过遍译就可以直接运行。 B.语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.c源程序经编译形成的二进制代码可以直接运行

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言简单测试题

(1)C语言中下列叙述正确的是________。 A)不能使用do…while语句构成的循环 B)do…while语句构成的循环,必须用break语句才能退出 C)do…while语句构成的循环,当while语句中的表达式值为非零时结束循环 D)do…while语句构成的循环,当while语句中的表达式值为零时结束循环 答案:D 评析:选项A是错误的,c语言支持d0…while语句;选项B是错误的,do...while 构成的循环,当while语句中的表达式值为零时结束循环,而不是非零;选项c 也是错误的。 (2)以下选项中属于C语言的数据类型是________。 A)复数型 B)逻辑型 C)双精度型 D)集合型 答案:C 评析:c语言的数据类型分为基本类型、构造类型、指针类型、空类型四大类。其中,基本类型分为整型、字符型、实型三类。实型又称浮点型,包括单精度型和双精度型两种类型。 (3)在C语言中,不正确的int类型的常数是________。 A)32768 B)0 C)037 D)0xAF 答案:A 评析:c语言中int类型的常数的范围是:-32768~32767。c整常数可用三种形式表示:十进制整数,八进制整数,十六进制整数。选项A超出范围,不正确。 (4)以下程序输出的结果是________。 #include #include main()

{ int a=4294967295; printf("%d %u",a,a); system("pause"); } A)-1 -1 B)42949672954294967295C)-1 4294967295D)4294967295–l 答案:C 评析:printf函数中不同类型的数据用不同的格式字符,其中%d是按整型数据的实际长度输出十进制整数。变量a=4294967295以%d格式输出时溢出输出值为该数的补码值,即-1;%u用来输出unsigned型数据,无符号整型变量的数值范围为0~4294967295,所以变量a=4294967295以%u格式输出的值为4294967295。 (5)下列描述中不正确的是________。 A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值 答案:C 评析:c语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选项c的说法是不正确的。 (6)以下程序的输出结果是________。 #include #include main() { int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1]; for(i=0;i<4;i+=2) printf("%d",p[i]); system("pause"); }

c语言期末考试试题

一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() A.016 B.018 C.017 D.02 3. 不是C语言实型常量的是:() A.55.0 B.0.0 C.55.5 D.55e2.5 4 .字符串“xyzw”在内存中占用的字节数是:() A.6 B.5 C.4 D.3 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 B.2.25 C.2.1 D.1.5 D.1.5 D.1.5 D.1.5 6. 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2- `a`,c2-c1);则输出结果为:() (a的ASCII码值为97) A.M,2 B.G,3 C.G,2 D.D,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据 输入是:() A.a=2.2,b=3 B.a=2.2 b=3 C.2.2 3 D.2.2,3 8.表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>y?x:mc4)后,s,t的值为:() A.1,2 B.1,1 C.0,1 D.1,0 12. 语句for(a=0,b=0;b!=100&&a<5;a++)scanf(“%d”,&b); scanf最多可执行次数为:() A.4 B.6 C.5 D.1 13. 对于for(s=2;;s++)可以理解为:()

大学经典C语言编程试题

1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include<> void main() { int hcf(int,int); /*函数声明*/ int lcd(int,int,int); /*函数声明*/ int u,v,h,l; printf("Please inputtwo numbers:\n"); scanf("%d,%d",&u,&v); h=hcf(u,v); printf("",h); l=lcd(u,v,h); printf("",l); } int hcf(int u,int v) { int t,r; if(v>u) {t=u;u=v;v=t;} while((r=u%v)!=0) {u=v;v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } 2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#include<> int letter,digit,space,others; void main() { void count(char[]); char text[80]; printf("Please inputstring:\n"); gets(text); printf("string:\n"); puts(text); letter=0; digit=0; space=0; others=0; count(text); printf("letter:%d,digit:%d,space:%d,others:%d\n",letter,digit,space,others);

经典练习C语言编程的题目及答案整理

1.逆序输出正三位数 #include int main() { int input,output= 0; scanf("%d",&input); while(input != 0) { output = output*10 + input%10; input /= 10; } printf("%d\n",output); return 0; } 2.百元找零函数 #include int main() { int amount=100; int price=0; printf("请输入金额(元)"); scanf("%d",&price); printf("请输入票面"); scanf("%d",&amount); int change=amount-price; printf("找您%d元。\n",change); return 0; } 3.求平均数 #include int main() { int a,b; scanf("%d %d",&a,&b);

double c=(a+b)/2.0; /* scanf("%d",&amount); 这是注释,我随便放的,没意义 int change=amount-price;*/ printf("%d和%d的平均值是%f\n",a,b,c); return 0; } 4.写出程序的输出: int i=1; switch ( i/3 ) { case 0: printf("zero"); case 1: printf("one"); case 2: printf("two"); } 正确答案是:zeroonetwo。 5.水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 13 + 53+33。本题要求编写程序,计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<=N<=7)。 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行。 输入样例: 3 输出样例: 153 370 371 407

C语言测试题

一、选择题(每小题1.5分,共30分) 1、C语言中,double类型数据占()个字节。 A)1 B)2 C)4 D)8 2、以下数据中,不正确的数值或字符常量是()。 A) 0.0 B) 5L C) o13 D) 9861 3、已知各变量的类型定义如下,则以下不符合C语言语法的表达式 是:()。 int i=8,k,a,b; double x=1,y=5; A)k=i++ B)(int)x+0.4 C)y+=x++ D)a=2*a=3 4、在以下给出的表达式中,与do....while(E)语句中的(E)不等价的 表达式是:()。 A)(!E==0) B)(E>0||E<0) C)(E==0) D)(E!=0) 5、已知各变量的类型说明如下:则以下不符合C语言语法的表达式是()。 int k, a, b, w=5; float x=1.42; A) x%(-3) B) w+=-2 C) k=(a=2, b=3, a+b) D) a+=a-=(b=4)*(a=3) 6、在C语言的if语句中,用作判断的表达式为()。 A) 关系表达式 B) 逻辑表达式 C) 算术表达式 D) 任意表达式 7、若有以下定义和语句,则输出结果是()。 static char s[12]="a book!"; printf("%d",strlen(s)); A) 12 B) 8 C) 7 D) 6 8、以下叙述正确的是()。 A) 在C程序中,main函数必须位于程序的最前面 B) C程序的每一行中只能写一条语句 C) C语言本身没有输入输出语句 D) C程序的执行总是从其第一个函数开始

9、由给出的数据输入和输出形式,程序中输入输出语句的正确内容是()。 main( ) { int x; float y; printf (" enter x, y: "); 输入语句 输出语句 } 输入形式 enter x, y: 2 3.4 输出形式 x+y=5.40 A)scanf (" %d, %f ", &x, &y); B) scanf (" %d%f ", &x, &y); printf (" \nx+y=%4.2f ", x+y); printf (" \nx+y=%4.2f ", x+y); C) scanf (" %d%f ", &x, &y); D) scanf (" %d%3.1f ", &x, &y); printf (" \nx+y=%6.1f ", x+y); printf (" \nx+y=%4.2f ", x+y); 10、在C语言中,为了结束由while语句构成的循环,while后一对圆括 号中表达式的值应该为()。 A)0 B)1 C)true D)非0 11、以下字符中,不正确的C语言转义字符是() A) '\t' B) '\011' C) '\n' D) '\018' 12、以下说法有错的是:()。 A)字符'\0'可以通过赋初值或输入字符串时,由系统自动填加。 B)在C语言中字符数组可以等价于字符串变量。 C)可以利用二维字符数组作为字符串数组。 D)可以把字符型一维数组作为字符串变量。 13、下面程序段的运行结果是()。 x=y=0; while ( x<15 ) y++, x+=++y; printf ( " %d, %d ", y, x); A) 20, 7 B) 6, 12 C) 20, 8 D) 8, 20 14、能满足当x的值为偶数时为“真”,为奇数时为“假”的表达式是:()。 A)x%2==0 B)!x%2!=0 C)(x/2*2-x)==0 D)!(x%2)

大学C语言期末考试练习题(带详解答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

c语言测试题

1. 给出一个正整数,求出它是几位数,再按逆序分别输出每一位数字。 2. 输入一个1949年到2015年之间的一个年份,首先判断是否闰年,再计算该年建军节那天是星期几(以2015年建军节作为参照,那天是星期六)? 3. 幼儿园小朋友用n块红绿两种颜色的方形积木接火车,这列火车中红色的积木不能单独拼接,即要么火车中没有红色积木,要么有两块或两块以上的红色积木接在一起,问有多少种拼接方法? 4.计算两个大的整数的和。 5.质数和 据推测大于4的偶数都可以写成两个质数(素数)的和。让我们编写程序进行验证,如果有写出表达式,如果没有则输出“不能分解为两个质数之和”。如果能够写成的式子多于1个,则写出两个数字差比较大的那对。例如: 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 输出42 = 5 + 37即可。因为37-5最大。 6.克力豆 小明非常喜欢吃巧克力豆,第一天吃掉了所有巧克力豆总数一半多一粒,第二天又将剩下的巧克力豆吃掉了一半多一粒,以后每天吃掉前一天剩下的一半多一粒,到第n天准备吃的时候只剩下1粒巧克力豆。请帮忙计算一下,第一天开始吃的时候巧克力豆一共有多少粒? 输入数据有多组,每组占一行,包含一个正整数n(1≤n≤30),表示只剩下1粒巧克力豆的时候是在第n天发生的。输入以0结束。 对于每组输入数据,输出第一天开始吃的时候巧克力豆的总数,每个测试用例占一行。 输入样例: 2 4

输出样例: 4 22 7.DNA序列 对于一个序列的无序性可以使用相互之间无序的元素组的个数表示,例如字母序列DAABEC的无序性是5,D大于后面的AABC,E大于后面的C。而AACEDGG的无序性是1,因为只有E和D之间的顺序是乱的。我们的DNA序列由A, C, G和T组成,对于给定的序列可以计算其无序性。 输入 第一行包含两个整数:n(0 < n <= 50)表示DNA序列长度,m (0 < m <= 100) 给出行数,即m行DNA序列,每行包含n个字符。 输出 将原始DNA序列从最有序到最无序进行逐行输出,如果无序性相同则按原来顺序输出。 输入样例 10 6 AACATGAAGG TTTTGGCCAA TTTGGCCAAA GATCAGATTT CCCGGGGGGA ATCGATGCAT 输出样例 CCCGGGGGGA AACATGAAGG GATCAGATTT ATCGATGCAT TTTTGGCCAA TTTGGCCAAA

c语言期末测试题

5、已知:int a[2][3]; 则对数组元素的非法引用是 【 】 课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20年 月曰 第一部分 选择题(共30 分) 一、单项选择 对一题得2 题(本大题共15小题,每题只有一个正确答案,答 分,共30分) 1、 A ) C ) 2 、 以下关于C 语言标识符的描述中,正确的是 【 标识符可以由汉字组成 B )标识符只能以字母开头 关键字可以作为用户标识符 D ) Area 与area 是不同的标识符 使下列程序段输出“ 123, 456, 78”,键盘输入数据,正确的输入是【 int i,j,k; scanf ( printf ( A ) B 】。 】 。 “ %d,%3d%'d,&i,&j,&k); “%d,%d,%dn ” ,i,j,k); )123, 456,78 C ) 123, 45678 D ) 123,*45678 3、 判断char 类型的变量c1是否为数字字符的正确表达式为 A) (c1>=0)&&(c1<=9) B) (c1>= ' 0' )&&(c1<=' 9') C) ' 0' <=c1<= 9' D) (c1>= ' 0' )||(c1<= ' 9' 4、 若有语句int a=1,b=2,c=3 ;则以下值为0的表达式是 A )' a ' && b ' 】。 】 。 B ) a<=b C ) ((a>b)||(bvc) D)(!(a+b)==c&&a)

9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 A. 静态( static ) B. 外部( extern ) C.自动(auto ) D .寄存器(register ) 10、如下程序的输出结果是 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、 表示关系 a %d\n ”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。 A. *(a[0]+2) B. a[1][3] C . a[1][0] 6、在循环语句的循环体中执行 break 语句, 跳出该循环体,提前结束循环 继续执行 break 语句之后的循环体各语句 结束本次循环,进行下次循环 终止程序运行 7、执行语句 for(i=10;i>0;i--) A ) 10 B )9 8、若有 int *p1, A. p1=&k C. *p1=k+12 A ) B ) C ) D ) C ) *p2,k; B. p2=p1 D. k=p1+p2 ;后,变量 i 0 D ) 1 不正确的语句是 D. *(*(a+1)+2) 其作用是 的值为 】 。 】。 B. (a

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与’A ’是相同的 B. 字符串是常量,字符是变量 C. “A ”与’A ’是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

c语言期中考试试题及答案

中国民航大学2009-2010学年第二学期 《C 语言程序设计》期中考试试卷 课程编号:03402513 试卷类型: A 卷 考试形式:笔试 考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C 语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C 程序的执行是(【2】) 。 【2】 A) 从本程序的主函数开始,到本程序的主函数结束

B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的

C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关 8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。【8】 A) 016 0xbf 18 B) 0abc 017 0xa C) 010 -0x11 0x16 D) 0A12 7FF -123 9、下列四组转义字符中,合法的一组是(【9】)。 【9】 A)‘\t’‘\\’‘\n’ B)‘\’‘\017’‘\x’

c语言期末测试题(附答案)知识分享

课程代码:A100002座位号: 《计算机技术基础(C语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分) 1、以下关于C语言标识符的描述中,正确的是【】。 A)标识符可以由汉字组成B)标识符只能以字母开头 C)关键字可以作为用户标识符D)Area与area是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d\n”,i,j,k); A)12345678 B)123,456,78 C)123,45678 D)123,*45678 3、判断char类型的变量c1是否为数字字符的正确表达式为【】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。 A)’a’&&’b’ B)a<=b C)((a>b)||(b

A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行break语句,其作用是【】。A)跳出该循环体,提前结束循环 B)继续执行break语句之后的循环体各语句 C)结束本次循环,进行下次循环 D)终止程序运行 7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。A)10 B)9 C)0 D)1 8、若有int *p1, *p2,k; 不正确的语句是【】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是【】 A. 静态(static) B. 外部(extern) C. 自动(auto)D. 寄存器(register) 10、如下程序的输出结果是【】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系a main() {int x; scanf(“%d”,&x); if(x<=3) ; else if(x !=10)printf(“%d\n”,x); } 程序运行时,输入的值在哪个范围才会有输出结果。【】

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组a 的正确说明是。 A)int a(10); B)int n=10,a[n]; C)int n; D)#define SIZE 10 scanf(“%d”,&n); int a[SIZE]; int a[n]; 【题3】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 【题8】若有说明:int a[3][4];则对a 数组元素的非法引用是。 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 【题9】以下能对二维数组a 进行正确初始化的语句是。 A)int a[2][]={{1,0,1},{5,2,3}}; B)int a[][3]={{1,2,3},{4,5,6}}; C)int a[2][4]={{1,2,3},{4,5},{6}}; D)int a[][3]={{1,0,1},{},{1,1}}; 【题10】以下不能对二维数组a 进行正确初始化的语句是。 A)int a[2][3]={0}; B)int a[][3]={{1,2},{0}}; C)int a[2][3]={{1,2},{3,4},{5,6}}; D)int a[][3]={1,2,3,4,5,6};

C语言测试题

C语言测试题 姓名:日期:◆下面的测试题中,认为所有必须的头文件都已经正确的包含了◆数据类型 char 一个字节1 byte int 两个字节2 byte long int 四个字节4 byte float 四个字节4 byet double 八个字节8 byte long double 十个字节10 byte pointer 两个字节2 byte 第一题: main() { char *p,*q; char str[]="Hello,World\n"; q = p = str; p++; printf(q); printf(p); } 运行结果是什么?____________ 第二题: void fun(char* str1, char* str2) { static char buffer[21]; strncpy(buffer, str1, 10); strncat(buffer, str2, 10); *str1 = *str2; str1 = buffer; } main() { char str1[] = "ABC\n"; char str2[] = "BCD\n";

fun(str1, str2); printf(str1); printf(str2); } 程序运行结果是__________________ 第三题: main() { short ar[11]={1,2,3,4,5,6,7,8,9,0,11}; short* par=&ar[1]; int i; for(i=0; i<10; i++) { printf("%-5hd%-5hd%-5hd", ar[i], par[i],*(ar+i)); } } 程序运行结果是__________________ 第四题: main() { short *p, *q; short ar[10]={0}; p = q = ar; p++; printf("%5d", p-q); printf("%5d", (char*)p - (char*)q); printf("%5d", sizeof(ar)/sizeof(*ar)); } 假设sizeof(short)==2 程序运行结果是__________________ 第五题: int sub(int a, int b) { return a-b; }

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1) 1. 以下叙述中正确的是()。 A. C语言比其他语言高级 B. C语言可以不用编译就能被计算机识别执行 C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D. C语言出现的最晚,具有其他语言的一切优点 2. 以下叙述中正确的是()。 A.构成C程序的基本单位是函数 B.可在一个函数中定义另一个函数 C. main函数必须放在其他函数之前 D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。 A. C语言程序总是从第一个函数开始执行 B.在C语言程序中,要调用函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 4. 以下有关for循环的正确描述是()。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 5. 对下面程序段的描述,正确的是()。 x=-1; do {x=x*x;}while(!x); A.是死循环 B. 循环执行一次 C. 循环执行两次 D. 有语法错误 6. 以下有关C语言数组说确的是()。 A.数组元素的数据类型可以不一致 B.数组元素的个数可以不确定,允许随机变动 C.可以使用动态存分配技术,定义元素个数可变的数组 D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数 7.以下数组定义正确的是()。 A. int a(20); B. int a[ ]={1,2,5,7,0}; C. int a[n]; D. int a[2]={1,2,4,6}; 8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。 A. b[0][9] B. b[2,3] C. b(1)(5) D. b[10] [0] 9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。 A.0 B.不定 C. 6 D. 7 10.以下叙述中不正确的是( )。 A.字符数组中可以存放字符串 B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行整体输入、输出 D.不能通过“=”对字符型数组进行整体赋值 11.已知char d[ ]={”543210”};,则数组d的长度是( )。 A.5 B.6 C. 7 D. 8 12.已知char s3[ ]=”China”;,则下列程序段的输出结果是()。 printf(“%d”,sizeof(s3)); A.5 B. 6 C. 7 D.8 13.已知char s1[10],s2[ ]={”China”};则在程序中能将字符串”China”赋给数组s1

相关文档
最新文档