当前位置:半城文秘网 >范文大全 > 公文范文 > C语言程序设计试卷及答案3篇

C语言程序设计试卷及答案3篇

时间:2022-12-29 19:12:01 来源:网友投稿

C语言程序设计试卷及答案1  一、单项选择题(20分,每题2分)  1.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式(a  A)1B)2C)3D)0  2.for(i=0;i下面是小编为大家整理的C语言程序设计试卷及答案3篇,供大家参考。

C语言程序设计试卷及答案3篇

C语言程序设计试卷及答案1

  一、单项选择题(20分,每题2分)

  1.若整型变量a、b、c、d中的值依次为:1、4、 3、2。则条件表达式(a

  A)1 B)2 C)3 D)0

  2.for(i=0;i<10;i++)

  if(i〈=5) break;

  则循环结束后i的值为

  A)0 B)1 C)5 D)10

  3.下面正确的字符常量是:

  A)“c” B)‘\\’’ C)‘W’ D)‘’

  4.C语言中,运算对象必须是整型的运算符是:

  A)% B)/ C)* D)+

  5.数字字符0的ASCII值为48,若有以下程序

  main()

  {

  char a="1", b="2";

  printf("%c,",b++);

  printf("%dn",b-a);

  }

  程序运行后的输出结果是。

  A) 3,2 B)50,2 C)2,2 D)2,50

  6.以下选项中不能作为合法常量的是。

  A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

  7.以下说法正确的是

  A)C程序总是从第一个定义的函数开始执行

  B)在C程序中,要调用的函数必须在main()函数中定义

  C)C程序总是从main()函数开始执行

  D)C程序的main()函数必须放在程序的开始部分

  8.若有说明:char c=‘\72’;则变量c:

  A)包含一个字符 B)包含2个字符

  C)包含3个字符 D)说 明不合法,c的值不确定

  9.以下说法正确的是

  A)C程序总是从第一个定义的函数开始执行

  B)在C程序中, 要调用的函数必须在main()函数中定义

  C)C程序总是从main()函数开始执行

  D)C程序的main()函 数必须放在程序的`开始部分

  10.int *p1,*p2,a[10];

  p1=a;

  p2=&a[5];

  则p2-p1 的值为:

  A)无法 确定 B)10 C)5 D)12

  二、填空题(30分,每空2分)

  1.已知宏定义#define s 2+3

  printf(”%d”,s*4) ;的输出结果是__(1)_____。

  2.若已知a=10,b=2 .0,则表达式!a

  3.已知fun1函数的功能是将三个数按由大到小的顺序调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能。

  void fun2(int *x,int *y)

  {

  int t;

  t=*x; *x=*y.; *y=t;

  }

  void fun1()

  {

  int a=20, b=30, c=25;

  if(c>b) fun2(__.___(3)_______);

  if(a

  if(a

  }

  4.有以下程序,.执行后输出结果是 (6) 。

  main( )

  { int t=1,i=5;

  for(;i>=0;i--) t*=i;

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

  } ..

  ..

  5.C语言函数是由函数头和..函数体两部分组成。其中,函数头包括 (7) ,(8) 和(9) 。

  6.表达式(a==b)&&(a>b)的值是___(10)____。

  7.将下列字符串表示成C语言的字符串常量

  C:\TC\LIB_____(11)_________

  He said:"I’m a student."___________(12)_________________

  85% student passed.______________(13)_____________

  8.下面程序的功能是..计算1-3+5-7+…-99+101的值存在s中,请填空。

  #include

  #include

  main()

  {

  int i,t=1,s=0;

  for(i=1;i<=101;__(14)__)

  {

  .

  s=s+i*t;

  t=__(15)___;

  }

  .

  }

  三、读程序写结果

  1.写出程序的运行结果

  #include

  main()

  {

  int i, sum=0;

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

  {

  sum += i;

  if((i%2==0) || (i%3==0) )

  i += 5;

  }

  printf("%d", sum);

  }

  }

  2.写出程 序运行后的 输出结果

  #include

  char *ss(char *s)

  {

  return s+strlen(s)/2;

  }

  main( )

  { char *p,*str="abcdefgh";

  p=ss(str);

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

  }

  3.

  (1)函数sub()的功能是什么?

  (2)写出程序运行的输出结果。

  int sub(int num)

  {

  int i,product=1;

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

  product*=2;

  return(product);

  }

  main()

  {

  int i,sum=0;

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

  {

  sum+=sub(i);

  printf("sum%d=%dn",i,sum);

  }

  }

  四、编程(完形填空)(20分,每题10分)

  1.找出100以内满足下列条件的正整数,并按每行4个数字的格式显示在屏幕上。条件:能被7整除但不能被9整除,或者不能被7整除但可以被11整除。

  main()

  {

  int i,count=___(1)___;

  printf("nthese numbers are:n");

  for(i=1;i__(2)____100;i++)

  if((i%7==0&&i%9!=0) _(3)__(i%7!=0__(4) _i%11==0))

  {

  count++;

  printf("%10d",i);

  if(count%4==0)

  printf("___(5)_____");

  }

  }

  2.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,

  例如:输入的两个字符串分别为abcd和abcfe,则输出为-2.请完成填空.

  #include

  main()

  {

  char str1[100],str2[100],c;

  int i,s;

  printf("ninput string1:n");

  gets(str1);

  printf("ninput string2:n");

  gets(__(6)____);

  i=0;

  while((str1[i]==str2[i])&&(str1[i]!=_(7)__))

  ___(8)____;

  s=____(9)_____;

  printf("___(10)_____n",s);

  }


C语言程序设计试卷及答案3篇扩展阅读


C语言程序设计试卷及答案3篇(扩展1)

——C语言程序设计模拟试题及答案3篇

C语言程序设计模拟试题及答案1

  一、填空题

  1、C语言中基本的数据类型有:______、______ 、______ .

  2、C语言中普通整型变量的类型说明符为______,在内存中占______字节,有符号普通整型的数据范围是______ .

  3、整数-35在机内的补码表示为______.

  4、执行下列语句int a=8; a+=a-=a*a;后,a的值是______.

  5、有如下语句:char A[ ]={“I am a student”};该字符串的长度是______,A[3]=______.

  6、符号“a”和‘a’的区别是______.

  7、所谓“指针”就是______.“&”运算符的作用是______.“*”运算符的作用是______.

  8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是_a=1,b=3,c=2__.

  一、填空题

  (1)整型、实型、字符型。

  (2)int,2,-32768~ +32767

  (3)1111111111011101

  (4)- 112

  (5)14,‘m’

  (6)“a”是字符串常量,而‘a’是字符常量。

  (7)存放地址值的变量或常量,或者答地址。

  (8)取运算对象的.地址。取指针变量所指的内容。a=1,b=3,c=2

  二、选择题

  1、设整型变量a为5,使b不为2的表达式是( C )。

  A. b=a/2 B. b=6-(——a) C. b=a%2 D. b=a>3?2:1

  2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。

  A. 缩排位置相同的if B. 在其之前未配对的if

  C. 在其之前未配对的最近的if D.同一行上的if

  3、以下程序的输出结果是( D )。

  int x=10,y=10;

  printf(“%d %d\n”,x——,——y);

  A. 10 10 B. 9 9 C. 9 10 D. 10 9

  4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B )。

  A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i

  5、选出下列标识符中不是合法的标识符的是( D )。

  A. hot_do B. cat1 C. _pri D. 2ab

  6、以下程序的输出结果是( B )。

  int a=5; float x=3.14; a*=x*(‘E’ - ‘A’); printf(“%f\n”,(float)a); A. 62.000000 B. 62.800000 C. 63.000000 D. 62

  7、设有说明double(*p1)[N];其中标识符p1是( C )。

  A. N个指向double型变量的指针。

  B. 指向N个double型变量的函数指针。

  C. 一个指向由N个double型元素组成的一维数组的指针。

  D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。

  8、在C程序中有如下语句:char *func(int x,int y);它是( C )。

  A. 对函数func的定义。 B. 对函数func的调用。

  C.对函数func的原型说明。 D. 不合法的。

  9、以下程序的输出结果是( D )。

  char str[15]=“hello!”;

  printf(“%d\n”,strlen(str));

  A. 15 B. 14 C. 7 D. 6

  10、分析以下程序的输出结果是( A )。

  main()

  {int a=5,b=-1,c;

  c=adds(a,b);

  printf(“%d”,c);

  c=adds(a,b);

  printf(“%d\n”,c); }

  int adds(int x,int y)

  {static int m=0,n=3;

  n*=++m;

  m=n%x+y++;

  return(m); }

  A. 2,3 B. 2,2 C. 3,2 D. 2,4

  11、下列描述中不正确的是( C )。

  A. 字符型数组中可能存放字符串。

  B. 可以对字符型数组进行整体输入、输出。

  C. 可以对整型数组进行整体输入、输出。

  D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

  12、以下程序的输出结果是( A )。

  #define f(x) x*x

  main()

  {int a=6,b=2,c;

  c=f(a)/f(b);

  printf(“%d\n”,c);

  }

  A. 9 B. 6 C. 36 D. 18

  13、设有如下定义: int x=10,y=3,z;

  则语句printf(“%d\n”,z=(x%y,x/y));的输出结果是( D )。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; 则语句for(i=0;i<3;i++) printf(“%d ”,x[i][2-i]);的输出结果是( C )。 A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9

  15、以下对二维数组a进行正确初始化的是( B )

  A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6};

  C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}};

  16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( C )。 int x;

  scanf(“%d”,&x);

  if(x++>5) printf(“%d”,x);

  else printf(“%d\n”,x - -);

  A. 7和5 B. 6和3 C. 7和4 D. 6和4

  17、设有如下定义: char *aa[2]={“abcd”,“ABCD”};则以下说法中正确的是( D )。

  A)aa数组成元素的值分别是“abcd”和ABCD“

  B)aa是指针变量,它指向含有两个数组元素的字符型一维数组

  C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址

  D)aa数组的两个元素中各自存放了字符‘a’和‘A’的地址

  ?18、下列程序的输出结果是( D )。

  char *p1=“abcd”, *p2=“ABCD”, str[50]=“xyz”;

  strcpy(str+2,strcat(p1+2,p2+1));

  printf(“%s”,str);

  A. xyabcAB B. abcABz C. ABabcz D. xycdBCD

  19、下列程序的输出结果是( C )。 int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf(“%d”,*(p++)); printf(“%d\n”,* *k); A. 4 4 B. 2 2 C. 2 4 D. 4 6

  20、不能把字符串:Hello!赋给数组b的语句是( B )。

  A. char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};

  B. char b[10]; b=“Hello!”;

  C. char b[10]; strcpy(b,“Hello!”);

  D. char b[10]=“Hello!”;


C语言程序设计试卷及答案3篇(扩展2)

——C语言程序设计期末试题及答案3篇

C语言程序设计期末试题及答案1

  1.以下程序输出结果是( )

  main()

  { int m=5;

  if(m++>5) printf("%d\n",m);

  else printf("%d\n",m--);

  A)7 B)6 C)5 D)4

  2以下程序的输出结果为( )

  # include

  main ( )

  { int i=0, j=0, a=6;

  if ((++i>0)&&(++j>0)) a++;

  printf ("i=%d, j=%d, a=%d\n", i,j,a);}

  A) i=0, j=0, a=6 B) i=1, j=1, a=7

  C) i=1, j=0, a=7 D) i=0, j=1, a=7

  3有如下程序

  main()

  { int a=2,b=-1,c=2;

  if(a

  if(b<0) c=0;

  else c++;

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

  }

  该程序的输出结果是( )

  A) 0 B) 1 C) 2 D) 3

  4若i为int型,且有程序如下,则输出结果是( )

  i=111;

  if(i%3==0)

  printf("####");

  printf("****");

  A) #### B) **** C) ####**** D) 无输出结果

  5若运行时x=12,则运行结果为( )

  {int x, y;

  scanf("%d", &x);

  y=x>12 ? x+10:x-12;

  printf("%d\n", y);}

  A) 0 B) 22 C) 12 D) 10

  6以下程序的输出结果是( )

  main()

  { int i=0, j=0, k=6;

  if ((++i>0)||(++j>0)) k++;

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

  }

  A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7

  7若变量都已正确说明,则以下程序段输出为( )

  int a=1,b=2,c=3;

  if(a>b)

  a=b;

  b=c;

  c=a;

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

  A)a=1 b=2 c=1 B)a=1 b=2 c=3

  C)a=1 b=3 c=1 D)a=2 b=3 c=2

  8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( )

  if(a

  if(c

  else

  if(a

  if(b

  else x=3;

  else x=6;

  else x=7;

  A) 1 B)2 C)3 D)6

  9以下不正确的语句为( )

  A)if(x>y);

  B)if(x==y)&&(x!=0)x+=y;

  C)if(x!=y)scanf("%d",&x);else scanf("%d",&y);

  D)if(x

  10有以下程序:

  #include"stdio.h"

  main( )

  {char i;

  for (; (i=getchar ())!="\n";)

  {switch (i-"a")

  {case 0: putchar (i);

  case 1: putchar (i+1);break;

  case 2: putchar (i+2);

  case 3: break;

  default: putchar (i);break;

  }

  }

  printf ("\n");

  }

  输入下列数据后,程序的输出结果是( )

  abcde

  A) abcde B) abcee

  C) abbde D) abccdd

  11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( )

  A) switch(a+b); B) switch(a*a+b*b)

  { case 1:y=a+b; break; {case 3:

  case 0:y=a-b; break; case 1:y=a+b;break;

  } case 3:y=b-a,break;

  }

  C) switch a D) switch(a-b)

  { case 1 :y=a-b; break {

  case 2: x=a*d; break case c1:case 4:x=a+b;break;

  default:x=a+b; case c2:case 11:y=a-b;break;

  } default:y=a*b;break;

  }

  12写出下面程序输出结果( )

  {int x=1, y=0, a=0, b=0;

  switch(x)

  {case 1:

  switch(y)

  {case 0: a++;

  case 1: b++; }

  case 2: a++; b++;

  }

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

  }

  A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2

  13C语言的for语句中的表达式可以部分或全部省略,但两个( )不可省略。但当三个表达式

  均省略后,因缺少判断条件,循环会无限制地进行下去,形成死循环。

  A) < B) ++ C) ; D) ,

  14下面有关for循环的正确描述是( )。

  A) for循环只能用于循环次数已经确定的情况

  B) for循环是先执行循环体语句,后判定表达式

  C) 在for循环中,不能用break语句跳出循环体

  D) for循环体语句中,可以包含多条语句,但要用花括号括起来

  15以下程序段( )。

  x=-1;

  do

  { x=x*x;}

  while(!x)

  A) 是死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误

  16如下的数组中,数组array占用的内存空间是( )个字节。

  char array[]={"c","h","i","n","a"};

  A. 1 B. 5 C. 6 D. 不确定

  17设有程序段

  int k=10;

  while(k=0) k=k-1;

  则下面描述正确的是( )。

  A) while 循环执行10次 B) 循环是无限循环

  C) 循环体语句一次也不执行 D) 循环体语句执行一次

  18下列程序段的运行结果是( )

  int n=0;

  while(n++<3);

  printf("%d",n)

  A. 2 B. 3 C. 4 D. 以上都不对

  19设有程序段

  t=0;

  while(printf("*"));

  { t++;

  if (t<3) break;

  }

  下面描述正确的是( )。

  A) 其中循环控制表达式与0等价 B) 其中循环控制表达式与"0"等价

  C) 其中循环控制表达式是不合法的 D) 以上说法都不对

  20下面程序的运行结果是( )。

  #include

  main()

  { int y=10;

  do { y--;} while(--y);

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

  }

  A) -1 B) 1 C) 8 D) 0

  21以下程序段的输出结果是( ).

  main()

  { int i=5;

  for ( ;i<=15; )

  { i++;

  if (i%4==0) printf("%d ",i);

  else continue;}

  }

  A. 8 12 16 B. 8 12 C. 12 16 D. 8

  22以下不是无限循环的语句为( )。

  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;

  23有如下语句

  int x=3;

  do

  { printf("%d\n",x-=2);} while(!(--x));

  则上面程序段( )

  A. 输出的是1 B. 输出的是1和-2

  C. 输出的是3和0 D. 是死循环

  24以下不是无限循环的是( )

  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--) s+=i;

  25以下正确的描述是( )。

  A) continue语句的作用是结束整个循环的执行

  B) 只能在循环体内和switch语句内使用break语句

  C) 在循环体内使用break语句或continue语句的作用相同

  D) 从多层循环嵌套中退出时,只能使用goto语句

  26以下程序输出结果为( )

  #include "stdio.h"

  main()

  {int i,b,k=0;

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

  { b=i%2;

  while (b-->=0) k++;}

  printf("%d,%d\n",k,b);

  }

  A. 3,-1 B. 8,-1 C. 3,0 D. 8,-2

  27以下程序段中循环体总的执行次数是( )

  int i,j;

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

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

  {......}

  A) 42 B) 21 C) 13 D) 36

  28以下不正确的描述是( )

  A. break 语句不能用于循环语句和switch语句外的任何其他语句

  B. 在switch语句中使用break语句或continue语句的作用相同

  C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行

  D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环

  1else语句总是和靠它最近的if匹配。

  2switch语句中一定有default分支

  3case后只能跟常量,不能跟变量

  4break语句的作用就是结束本层循环。

  5do-while语句构成的循环不能用其它语句构成的循环来代替。

  6用do-while语句构成循环时,只要while后的表达式为0时就结束循环。

  7for(表达式1;表达式2;表达式3)中,表达式1和表达式3不能同时都是逗号表达式。

  8for循环中,如果表达式2为空,则该循环一定是死循环。

  9while循环的while()后没有分号,而do-while循环的while()后一定要有一个分号。

  10for(i=0,j=10;i<=j;i++,j--) k=i+j;执行完后,k的值为50。

C语言程序设计期末试题及答案2

  1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)

  A.switch(x)

  {

  case 1.0: printf("* ");

  case 2.0 printf("** ");

  }

  B.switch((int)x)

  {

  case 1.0: printf("* ");

  case 2.0 printf("** ");

  }

  C.switch(a+b)

  {

  case 1: printf("* ");

  case 2+1: printf("** ");

  }

  D.switch(a+b)

  {

  case 1: printf("* ")

  case c: printf("** ");

  }

  标准答案:C

  2. 若有宏定义如下:

  #define X 5

  #define Y X+1

  #define Z Y*X/2

  则执行以下printf语句后,输出的结果是( )

  int a; a=Y;

  printf("%d ",Z);

  printf("%d",--a); (2分)

  A.7,6 B.12,6 C.12,5 D.7,5

  标准答案:D

  3. 下面的符号常量定义中,正确的是 ( ) (2分)

  A.#define PI 3.14; B.#include PI 3.14;

  C.#define PI=3.14 D.#define PI 3.14

  标准答案:D

  4. 以下程序的输出结果是( )

  int a, b;

  void fun()

  { a=100; b=200; }

  main()

  { int a=5, b=7;

  fun();

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

  } (2分)

  A.100200 B.57 C.200100 D.75

  标准答案:D

  5. 若有以下调用语句,则不正确的fun函数的首部是( )

  main()

  { …

  int a[50],n;

  …

  fun(n, &a[9]);

  …

  } (2分)

  A.void fun(int m, int x[])

  B.void fun(int s, int h[41])

  C.void fun(int p, int *s)

  D.void fun(int n, int a)

  标准答案:D

  6. 以下程序的输出结果是( )

  fun(int x, int y, int z)

  { z=x*x+y*y; }

  main()

  { int a=31;

  fun(5,2,a);

  printf("%d",a);

  } (2分)

  A.0 B.29 C.31 D.无定值

  标准答案:C

  7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2分)

  A.auto和static B.auto和register

  C.register和static D.extern和register

  标准答案:B

  8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)

  A.地址传递

  B.单向值传递

  C.由实参传给形参,再由形参传回实参

  D.传递方式由用户指定

  标准答案:B

  9. 以下函数值的类型是( )

  fun ( float x )

  { float y;

  y= 3*x-4;

  return y;

  } (2分)

  A.int B.不确定 C.void D.float

  标准答案:A

  10. C语言规定函数的返回值的类型是由( ) (2分)

  A.return语句中表达式类型决定

  B.调用该函数时的主调函数类型决定

  C.调用该函数时系统临时决定

  D.在定义该函数时所指定的函数类型决定

  标准答案:D


C语言程序设计试卷及答案3篇(扩展3)

——C语言程序设计试题及答案3篇

C语言程序设计试题及答案1

  1[单选题] 若有语句:int a[3][4],(。P)[4];P=a;,则以下选项中叙述错误的是()。

  A.系统将开辟一个名为P的二维数组,“o][o]中的值即为a[o][o]中的值

  B.P+1代表a[1][0]的地址

  C.P中将存放a数组的首地址

  D.P+2代表a数组最后一行的首地址

  参考答案:A

  参考解析:(+P)[4]定义了一个数组指针。P可以指向类似于arry[][4]的数组,题设中,P不是一个二维数组,只是可以指向这类二维数组,因此选项A错误。P+1代表了第一行第一个元素的地址,P=a指向数组a的首地址,则B、C选项正确,同理可知选项D也正确。故答案为A选项。

  2[单选题] 以下叙述中正确的是()

  A.在算法设计时,可以把复杂任务分解成一些简单的子任务

  B.在C语言程序设计中,所有函数必须保存在一个源文件中

  C.只要包含了三种基本结构的算法就是结构化程序

  D.结构化程序必须包含所有的三种基本结构.缺一不可

  参考答案:A

  参考解析:C语言的程序中,函数不一定都放在同一个源文件中,可以分别放在不同源文件中,通过#inClude命令来引用,所以B错误。结构化程序可以包含三种基本结构中的一种或几种,所以C,D错误。

  3[单选题] 有三个关系R、S和T如下:

  则由关系R和S得到关系T的操作是( )。

  A.自然连接 B.交 C.除 D.并

  参考答案:C

  参考解析:如果S=T/R,则s称为T除以R的商。在除运算中s的域由T中那些不出现在R中的域所组成,对于s中的任一有序组,由它与关系R中每个有序组所构成的有序组均出现在关系T中。所以本题选择C2017年计算机二级C语言练习题及答案2017年计算机二级C语言练习题及答案。

  4[单选题] 以下叙述错误的是( )。

  A.一个算法所包含的操作步骤应该是有限的

  B.任何能通过编译和运行的算法都一定能得到所期望的结果

  C.算法中每一条指令必须有确切的含义

  D.算法可以用各种描述方法来进行描述

  参考答案:B

  参考解析:算法的特点:零个或多个输入,至少一个输出,可行性(能编程实现),有穷性(有限步出结果),确定性(描述不能有歧义)。可知选项A,c,D正确。c语言中。通过编译,可以运行的程序,不一定符合题目的本意,因此即使可以运行得到结果,也不一定和预期的结果一样,否则就不需要调试和修改程序了,故B选项错误。答案为B选项。

  5[单选题] 设有定义:

  int a=1,b=2,C=3;

  以下语句中执行效果与其他三个不同的是( )。

  A.if(a>B.C=a,a=b,b=C;

  B.if(a>B.{C=a,a=b,b=C;}

  C.if(a>B.C=a;a=b;b=c;

  D.if(a>B.{C=a;a=b;b=c;}

  参考答案:C

  参考解析:由于a小于b,所以所有选项中的条件都为假,c选项中实际执行了a=b;b=c;两个操作。而A、B、D选项由于条件不成立,所以什么也没有做,所以选择c选项。

  6[单选题] 以下叙述中正确的是

  A.两个字符串可以用关系运算符进行大小比较

  B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)

  C.C语言本身没有提供对字符串进行整体操作的运算符

  D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

  参考答案:C

  参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。

  7[单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

  A.一对一 B.一对多 C.多对多 D.多对一

  参考答案:C

  参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

  8[单选题] 对于while(!E)s;,若要执行循环体s,则E的取值应为:

  A.E等于1 B.E不等于0 C.E不等于1 D.E等于0

  参考答案:D

  参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。

  9[单选题] 在软件设计中不使用的工具是( )。

  A.系统结构图 B.PAD图 C.数据流图(DFD图) D.程序流程图

  参考答案:C

  参考解析:系统结构图是对软件系统结构的总体设计的图形显示2017年计算机二级C语言练习题及答案计算机等级。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的

  PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。

  10[单选题] 若有定义语句:char a="\82";则变量a()

  A.说明不合法 B.包含1个字符 C.包含2个字符 D.包含3个字符

  参考答案:B

  参考解析:char a="\82",定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为"2"。因此B选项正确。


C语言程序设计试卷及答案3篇(扩展4)

——C语言程序设计期末试题附答案3篇

C语言程序设计期末试题附答案1

  1若a、b均为int型变量,且a=100,则以下的for循环是死循环.

  for (b=100;a!=b;++a,b++) printf("----\n");

  执行语句:for(i=1;i++<4;++i);后;变量i的值是5。

  2以下程序的运行结果是【 】

  main()

  {int x,y,z;

  x=1;y=2;z=3;

  x=y--<=x||x+y!=z;

  printf("%d,%d",x,y);

  }

  3以下程序的运行结果是【 】

  main()

  {int x,y,z;

  x=1;y=1;z=0;

  x=x||y&&z;

  printf("%d,%d",x,x&&!y||z);

  }

  4以下程序的运行结果是【 】

  main()

  {int a,b,c;

  int s,w=0,t;

  a=-1;b=3;c=3;

  if(c>0)s=a+b;

  if(a<=0)

  {if(b>0)

  if(c<=0)w=a-b;

  }

  else if(c>0)w=a-b;

  else t=c;

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

  }

  5阅读下面程序:

  main()

  { int s, t, a, b;

  scanf("%d%d",&a, &b);

  s=1;

  t=1;

  if(a>0) s=s+1;

  if(a>b) t=s+t;

  else if (a==b) t=5;

  else t=2*s;

  printf("s=%d, t=%d", s, t);

  }

  6为了使输出结果t=4, 输入量a和b应满足的条件是【 】

  7下面程序的功能是在输入的一批整数中求出最大者,输入0结束循环。

  #include main()

  { int a,max=0;

  scanf("%d",&a)

  while(【 】){ if (max

  scanf("%d",&a);

  }

  printf("%d",max);

  }

  8执行下面的程序段后,k值是【 】。

  k=1; n=263;

  do { k*=n%10; n/=10; } while(n);

  9等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有的和。请填空。

  #include

  main()

  { int a,d,sum;

  a=2;d=3;sum=0;

  do

  { sum+=a;

  a+=d;

  if (【 】) printf("%d\n",sum);

  } while(sum<200);

  }

  10鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。

  for(x=1;x<=29;x++)

  { y=30-x;

  if (【 】) printf("%d,%d\n",x,y);

  }

  11写出下面程序的运算结果【 】。

  # include

  main ( )

  { int a=14, b=63;

  while (a!=b)

  {while (a>b) a-=b;

  while (a

  }

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

  }

  12下列程序的输出为【 】。

  #include

  main()

  {

  int i,j,x=0;

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

  { if(i%3==2) break;

  x++;

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

  { if(j%2) break;

  x++;

  }

  x++;

  }

  printf("x=%d\n",x);

  }


C语言程序设计试卷及答案3篇(扩展5)

——VB程序设计试题及答案一3篇

VB程序设计试题及答案一1

  一、单选题

  1. VB6.0是一种面向 B 的编程环境。

  (A) 机器 (B) 对象

  (C) 过程 (D) 应用

  2. 要使FormI窗体的标题栏显示"欢迎使用VB",以下 D 语句是正确的。

  (A) Forml.Caption=“欢迎使用VB”

  (B) Forml.Caption="欢迎使用VB"

  (C) Forml.Caption=欢迎使用VB

  (D) Forml.Caption="欢迎使用VB"

  3. 若要使命令按钮不可操作,要对 A 属性进行设置。

  (A) EnabIed (B)Visible

  (C) Backcolor (D)Caption

  4. 如果在窗体上已经创建了一个文本框对象TextI,可以通过 C 事件获得输入键值的ASCII码。

  (A) Change (B) LostFocus

  (C) KeyPress (D) GotFocus

  5. 下面 A 是合法的变量名。

  (A) X_yz (B) 123ab。 (C) integer (D) X-Y

  6. 以下关系表达式 中,其值为False的是 A 。

  (A) "ABC">"AbC" (B) "女">"男"

  (C) "BASIC"=UCase("basic) (D) "123"<"23"

  7. 为了给x、y、z三个变量赋初值1,下面正确的赋值语句是 A 。

  (A) x=1:y=1:z=1 (B) x=1,y=1,z=1

  (C) x=y=z=1 (D) xyz=1

  8. VB提供了结构化程序设计的三种基本结构,三种基本结构是 D 。

  (A)递归结构、选择结构、循环结构

  (B)选择结构、过程结构、顺序结构

  (C)过程结构、输入输出结构、转向结构

  (D)选择结构、循环结构、顺序结构

  9. 下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是 D 。

  (A) If sex="男" And age=4O And InStr(duty,"教授")>O Then n=n+l

  (B) If sex="男" And age=4O And (duty="教授" Or duty="副教授") Then n=n+l

  (C) If sex="男" And age=4O And Right(duty,2)="教授" Then n=n+l

  (D) If sex="男" And age=4O And duty="教授" And duty="副教授" Then n=n+l

  10.下列关于Do…Loop循环结构执行循环次数的描述正确的是 D 。

  (A) Do While…Loop循环和Do…Loop Until循环至少都执行一次

  (B) Do While…Loop循环和Do…Loop Until循环可能都不执行

  (C) Do While…Loop循环至少执行一次和Do…Loop Until循环可能不执行

  (D) Do While…Loop循环可能不执行和Do…Loop Until循环至少执行一次

  11.以下 B 是正确的For…Next结构。

  (A) For x=1 To Step 10 (B) For x=3 To -3 Step -3

  … …

  Next x Next x

  (C) For x=1 To 10 (D) For x=3 to 10 step 3

  re: … …

  Next x Next y

  If i=10 Then GoTO re

  12.如下数组声明语句, B 是正确的。

  (A) Dim a[3,4] As Integer

  (B) Dim a(3,4) As Integer

  (C) Dim a(n,n) As Integer

  (D) Dim a(3 4) As Integer

  13.下列语句中(假定变量n有值),能正确声明可变长数组的是 A 。

  (A) Dim a( ) As Integer (B) Dim a( ) As Integer

  ReDim a(n) ReDim a(n) As String

  (C) Dim a( ) As Integer (D) Dim a(10) As Integer

  ReDim a(3, 4) ReDim a(n+10)

  ReDim Preserve a(4, 4)

  14.要想从子过程调用后返回两个结果,下面子过程语句说明合法的是 C 。

  (A) Sub f2(ByVal n%, ByVal m%) (B) Sub f1(n%, ByVal m%)

  (C) Sub f1(n%, m%) (D) Sub f1(ByVal n%, m%)

  15.设有如下程序段:

  Public Sub F1(n%)

  …

  n=3*n+4

  …

  End Sub

  Private Sub Command1_Click( )

  Dim n%, m%

  n=3

  m=4

  …

  ‘调用F1语句

  …

  End Sub

  则在Command1_Click事件中有效的调用语句是 B 。

  (A) Call F1(n+m) (B) Call F1(m) (C) Call F1(5) (D) Call F1(m+5)

  16.用来设置粗体字的属性是 C 。

  (A) FontItalic (B) FontName (C) FontBold (D) FontSize

  17.假定定时器的Interval属性为1000,Enabled属性为True,调用下面的事件过程,程序运行结束后变量x的值为 D 。

  Dim x As Integer

  Sub Timer1_Timer( )

  For i=1 to 10

  x=x+1

  Next i

  End Sub

  (A) 1000 (B) 10000 (C) 10 (D) 以上都不对

  18.在下列关于通用对话框的叙述中,错误的`是 B 。

  (A) CommonDialog1.ShowFont显示“字体”对话框

  (B) 在“打开”或“另存为”对话框中,用户选择的文件名可以经FileTitle属性返回

  (C) 在“打开”或“另存为”对话框中,用户选择的文件名机器路径可以经FileName属性返回

  (D)

  19.当用户按下并且释放一个键后会触发KeyPress、KeyUp和KeyDown事件,这三个事件发生的顺序是 C 。

  (A) KeyPress、KeyDown、KeyUp

  (B) KeyDown、KeyUp


C语言程序设计试卷及答案3篇(扩展6)

——c语言程序设计的实验报告3篇

c语言程序设计的实验报告1

  一、实验目的:

  1、掌握C语言的数据类型和变量的声明。

  2、掌握不同类型数据之间赋值的规律。

  3、掌握C语言的运算符和表达式的使用。

  4、熟悉C程序的编辑、编译、连接和运行的过程。

  二、实验内容:

  ①输人程序: #includevoid main{ int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1="a";c2="b"; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }

  ②运行此程序并分析结果

  按习题4. 8要求编写程序 题目为: 设圆半径r=l. 5,圆柱*=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。

  程序:

  三、实验步骤:

  ①输人程序:

  #include

  void main{ int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1="a";c2="b"; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); }

  ②运行此程序并分析结果。

  预计结果:

  a=61,b=62

  c1=a,c2=b

  d=``3.56,e=`-6.87

  f=````3157.890121,g=```````0.123456

  m=50000,n=-60000

  p=32768,q=40000(`代表空格)

  结果:

  g的输出看来是四舍五入了。

  ③在此基础上,将程序第9~14行改为:

  a=61;b=62;

  c1=a;c2=b;

  f=3157.890121;g=0.123456789;

  d=f;e=g;

  p=a=m=50000;q=b=n=-60000;

  运行程序,分析结果。

  p=a=m=50000;q=b=n=-60000;这两条语句将p、a、m的值和q、b、n的值都重新赋了相应的新值。除m、n外都是整型、无符号整型或字符型,因此输出会按数据类型强制截取,因此得到的值会不尽相同,但可以从理论上做出推测,但由于编译系统的不同,真正得到的结果也可能不尽相同。

  ④改用scanf函数输人数据而不用赋值语句,scanf函数如下:

  scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,%p,%q);

  输入的数据如下:

  分析运行结果。

  (说明:lf和ld格式符分别用于输人double型和long型数据)

  ⑤在④的基础上将printf语句改为:

  printf("a=%d,b=%d c1=%c,c2=%c d=%15.6f,e=%15.6f ",a,b,c1,c2,d,e);

  printf("f=%f,g=%f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q);

  运行程序:

  ⑥将p、q改用%o格式符输出。

  ⑦将scanf函数中的%1f和%ld改为%f和%d,运行程序并观察分析结果。

  出现错误,提示为:浮点错误:超出范围。程序异常中止。 (2)按习题4. 8要求编写程序

  题目为:

  设圆半径r=l. 5,圆柱*=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字。 程序:

  #include

  void main

  {

  float h,r,s,sq,vq,vz;

  float pi=3.1415926;

  printf("Please input the circinal r, and the cylindrical h:");

  scanf("%f,%f",&r,&h);

  l=2xpixr;

  sq=4xpixrxr;

  vq=4.0/3.0xpixrxrxr;

  vz=pixrxrxh;

  printf("circinal girth is: l=%6.2f ",l);

  printf("circinal area is: s=%6.2f ",s);

  printf("sphere surface area is: sq=%6.2f ",sq);

  printf("sphere cubage is: vq=%6.2f ",vq);

  printf("cylindrical cubage is: vz=%6.2f ",vz);

  }

  编程序,用getchar函数读人两个字符给c1 ,c2,然后分别用putchar函数和printf输出这两个字符。 上机运行程序,比较用printf和putchar函数输出字符的特点。 程序如下: #includevoid main{ char c1,c2; printf("Please input tow letters: "); c1=get); c2=get); printf("Putchar is: "); putc1); putc2); printf(" "); printf("Printf is: "); printf("%c %c ",c1,c2);

  }

  可见有putchar输出的结果是一个字符一个字符顺序输出的。每个putchar函数只能输出一个字符,且只能输出字符,而printf可以输出多个数据,且为任意类

  四、实验心得(体会):

  通过本次C语言上机实验,我对顺序结构程序设计有了一定的了解。通过几个例题,我对顺序结构中scanf和printf语句的基本实用情况有了一定的理解。我相信这些都为后来的编程打下基础。对C语言学习,我会更加努力。

推荐访问: 试卷 答案 语言程序设计 C语言程序设计试卷及答案3篇 c语言程序设计试卷及答案1 C语言程序设计试卷答案