程序状态寄存器CPSR的N、Z、C、V分别指--,I=1指()、F=1指(),M[4:0]用做()。
第1题:
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1
共有7种划分。这种划分的程序如下所示。
【程序】
include <stdio.h>
int n[1000],m,k;
void output sum()
{
int j;
for(j=0;n[j]!=0;j++)
printf("%d\t",n[j]);
printf("\n");
}
void sum(int i)
if(m-n[i]<n[i])
{ m=m-n[i];
(1)
i++;
n[i+1]=0;
}
else
{
(2)
m-=n[i];
i++;
}
if(m!=n[i])
sum(i);
else
output_sum();
if(n[i]>1)
{
n[i]--;
(3)
}
else
{
while((n[i]==1)&&(i>O))
{
i--;
(4)
}
if(i!=0)
{
(5)
sum(i);
}
}
}
void main()
{
int i;
scanf("%d",&n[0]);
m=k=n[0];
for(i=1;i<=k;i++)
n[i]=0;
while(n[0]!=1)
{
n[0]--;
i=0;
sum(0);
m=k;
}
}
第2题:
设有如下程序: #include"stdio.h" main() { char c; int m=0,n=0; while((c=getchar())!='\n') {if(c>='A'&&c<='Z') m++; else if(c>='a'&&c<='z')n++;} printf("m=%d,n=%d",m,n);} 如果从键盘上输入:AbCdefGHj<回车>,则程序运行后的输出结果是( )
A.m=5,n=4
B.m=4,n=5
C.m=9,n=0
D.无确定值
第3题:
有以下程序:#include <stdio.h>prt(int * m,int n) int i; for(i =0;i<n;i ++ ) m[i] ++;main( )} int a[ ] = { 1,2,3,4,5} ,i; prt(a,5); for(i =0;i<5;i ++ ) printf( "% d," ,a[i] );}程序运行后的输出结果是( )。
A.1,2,3,4,5,
B.2,3,4,5,6,
C.3,4,5,6,7,
D.2,3,4,5,1
第4题:
A)(仕兰微面试题目)
#i nclude
void testf(int*p)
{
*p+=1;
}
main()
{
int *n,m[2];
n=m;
m[0]=1;
m[1]=8;
testf(n);
printf("Data v alue is %d ",*n);
}
------------------------------
B)
#i nclude
void testf(int**p)
{
*p+=1;
}
main()
{int *n,m[2];
n=m;
m[0]=1;
m[1]=8;
testf(&n);
printf(Data v alue is %d",*n);
}
下面的结果是程序A还是程序B的?
Data v alue is 8
那么另一段程序的结果是什么?
第5题:
阅读以下程序说明和C程序,将程序段中(1)~(7)空缺处的语句填写完整。
【说明】
【C程序1】用回溯算法来产生由0或1组成的2m个二进位串,使该串满足以下要求。
视串为首尾相连的环,则由m位二进制数字组成的2m个子序列,每个可能的子序列都互不相同。例如,如果m=3,在串11101000首尾相连构成的环中,由3位二进制数字组成的每个可能的子序列都在环中恰好出现一次,它们依次是111,110,101,010,100,000,001,011,如图2-14所示。
【C程序2】是求“背包问题”的一组解的递归算法程序。“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为W1,W2,…,Wn,希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。
【C程序1】
define N 1024
define M 10
int b [N+M-1]
int equal(int k, int j int m) {
int i;
for(i=0; i<m; i++
if ( b[ k + i] (1) )
return 0;
return 1; }
int exchange (int k, int m, int v){
while ( b[ k + m - 1 ) == v ) {
b[ kncm--i]=! v (2);
}
(3)=v;
return k;
}
init ( iht v) {
int k
for( k = 0;K = N + M - 1;k++)
b[k] = v;
}
main ( ) {
int m, v, k, n, j;
printf ('Enter m (l<m<10) , v v=0, v=1)\ n") ;
scanf (" %d%d , &m, &v);
n = 0x01 << m;
init (!v);
k=0;
while((4)< n)
for (j=0;j<k;j++)
if (equal (k, j, m)) {
k=exchange (k, m, v)
j=(5);
}
for (k= 0 ;k<n ;k++ )
print{ (" %d\ n" , b[k]) ;
}
}
【C程序2】
include<stdio. h>
define N 7
define S 15
int w[N+1] = {0, 1, 4, 3, 4, 5, 2, 7};
int knap (int S, int n){
if (S == 0)
return 1;
if (s<0 || (s>0 && n<1))
return 0;
if ((6))) {
printf( "4d", w[n]);
return 1;
}
return (7)
}
main ( ) {
if (knap (S, N)
printf("OK:\n");
else
printf("NO!\n")
}
第6题:
下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.
试题程序:
include <conio.h>
include <stdio.h>
define M 5
/**********************************/
iht fun(int n, int xx[ ][ ])
{ int i, j, sum=0;
printf("\nThe %d x %d matrix:\n",M,M);
for(i=0;i<M;i++)
{ for (j=0; j<M; j++)
/**********************************/
printf("%4f",xx[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
sum+=xx[i][i]+xx[i][n-i-1];
return(sum);
}
main ()
{ int aa[M][M]={{1,2,3,4,5},{4,3,2,1,0},
{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};
clrscr();
printf("\nThe sum of all elements on 2
diagnals is %d",fun(M, aa));
}
第7题:
有以下程序 int f(int n) { if (n==l) return 1; else return f(n-1)+1; } main () { int i,j=0; for(i=i;i<3;i++) j+=f(i); printf {"%d\n", j ); } 程序运行后的输出结果是
A.4
B.3
C.2
D.1
第8题:
ARM体系结构包含一个当前程序状态寄存器CPSR和(5C)个备份的程序状态寄存器SPSR。
第9题:
以下程序段的输出结果是() int a[7]={9,15,7,-3,0,11,15},m,n,i;for(m=n=0,i=1;i<7;i++) if(a[i]>a[m])m=i; elseif(a[i]printf("%d,%d/n",m,n)
第10题:
复位后,以下描述不对的有()
第11题:
天阴了
吃了再走
没有米饭
第12题:
N:负数
Z:零
C://进位
V:借位
第13题:
已知字符0的ASCⅡ码为十六进制数30,下面程序的输出是______。 main() { int i; union{unsigned char c;unsigned int i[4];}z; z.i[0]=0x39;z.i[1]=0x36; printf("%d\n",z.c); }
A.56
B.57
C.58
D.59
第14题:
以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果,请填空。int fun( int n){ int m=0,f=1,i; for(i=1;i<=n;i++) { m+=i*f; f=-f; } return m;}main{ printf("m=%d\\n",); }
第15题:
有以下程序 #include <stdio.h> int fun(int (*s)[4],int n,int k) {int m,i; m=s[0][kl; for(i=1;i<n;i++) if(s[i][k]>m) m=s[i][k]; return m; } main() { int a[4][4]={{1,2,3,4},{11,12,13,14}, {21,22,23,24}, {31,32,33,34}}; printf("%d\n",fun(a,4,0)); } 程序的运行结果是______。
A.4
B.34
C.31
D.32
第16题:
有以下程序
#include<stdlo.h>
main( )
{char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>=‘a’&&8[i]<‘z’)n++:
printf(”%d\n”,n);
}
程序运行后的输出结果是
A.0
B.2
C.3
D.5
第17题:
有以下程序
#include<stdio.h>
main()
{char s[]=“012xy\08s34f4w2”;
int i,n=0:
for(i=0;s[i]!=0;i++)
if(s[i]>=‘0’&&s[i]<=‘9’)n++:
printf(“%d\n”,n):
}
程序运行后的输出结果是
A.0
B.3
C.7
D.8
第18题:
下面程序的输出结果是( )。 #include <iostream> using namespace std; void main( ) int i,j,m=0,n=0; for(i=0;i<2;i++) for(j=0;j<2;j++) if(j> =i) m=1;n++; cout<<m<<endl; cout<<n;
A.1 1
B.1 4
C.1 6
D.0 2
第19题:
下列程序的输出结果是 ( ) main( ) { int i,j,m=0,n=0; for(i=0;i<2;i+ +) for(j=0;j<2;j+ +) if(j>=i) m=1; n+ +; printf("%d\n",n); }
A.4
B.2
C.1
D.0
第20题:
下列CPSR寄存器标志位的作用说法错误的是()。
第21题:
欲使处理器禁止中断,则应该使()
第22题:
第23题: